home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 172bdoc.zip / RBBSDOC2.ASC < prev   
Text File  |  1989-05-27  |  376KB  |  6,993 lines

  1.  
  2.  
  3.  
  4.     RBBS-PC CPC17-2A                                                Page 143
  5.  
  6.     12. THE HAYES MODEM SWITCH SETTING AND CONSIDERATIONS
  7.     -----------------------------------------------------
  8.     12.1 Hayes Smartmodem 1200 Switch Considerations
  9.     ------------------------------------------------
  10.     RBBS-PC is tested  with a HAYES Smartmodem 1200  (i.e. external). The switch
  11.     settings on the modem must be as follows:
  12.                   switch -- 12345678
  13.                   setting - UUDDDUUD
  14.  
  15.     Recognizing that there  are many "Hayes-compatible" (and  not so compatible)
  16.     modems  in use, this section  is intended to  assist those adventurous souls
  17.     who use such  modems and need some  guidance on what the  otherwise mystical
  18.     Hayes switch settings mean.  The following table may be of some help:
  19.  
  20.                   Setting            Function to RBBS-PC
  21.     Hayes  | Factory | RBBS-PC |
  22.     Switch |---------|---------|   (NOTE "Up" means enabled or "on")
  23.  
  24.       1       Down       Up       Allows RBBS-PC to control the modem using the
  25.                                   RS-232 DTR lead (pin 20).
  26.  
  27.       2        Up        Up       Not meaningful to RBBS-PC (could be down) and
  28.                               is used to indicate if result codes are to be
  29.                               English words or single digits.  RBBS-PC sets
  30.                               this with the Hayes "V" command.  
  31.  
  32.       3       Down      Down      Not meaningful to RBBS-PC (could be down) and
  33.                               is used to indicate if result codes are to be
  34.                               sent to RBBS-PC.  RBBS-PC sets this with the
  35.                               Hayes "Q" command.
  36.  
  37.       4        Up       Down      The modem does not echo characters unless
  38.                                   half-duplex is selected and the modem is on-
  39.                                   line. 
  40.  
  41.       5       Down      Down      Modem  is NOT to answer incoming calls.  RBBS-
  42.                                  PC monitors the ring indicator (pin 22) to
  43.                                   determine if the phone is ringing.  If it is,
  44.                                   RBBS-PC will issue the necessary commands to
  45.                                   the modem.
  46.  
  47.       6       Down       Up       RBBS-PC checks for the carrier signal using
  48.                                   the RS-232 Carrier Detect lead (pin 8).  If
  49.                                   carrier is lost, RBBS-PC hangs up the phone
  50.                                   and re-cycles to await the next call.
  51.  
  52.       7        Up        Up       Not really required by RBBS-PC.   However in  
  53.                                the "down" position, the telephone extension 
  54.                                   light will illuminate on a multi-line         
  55.                          installation when the modem answers a call.
  56.  
  57.       8       Down      Down      Enables  the Smartmodem 1200 to recognize the 
  58.                                 Hayes commands issued by RBBS-PC.
  59.  
  60.     The most common problem, "RBBS-PC  continually recycles," occurs when switch
  61.     six is left in the factory position.
  62.  
  63.     These   switch  settings  do  not  have  to  be   changed  for  most   other
  64.  
  65.     RBBS-PC CPC17-2A                                                Page 144
  66.  
  67.     communications software packages.   (You can leave the switches set as shown
  68.     above if you use PC-TALK for your  smart terminal  communications.  However,
  69.     you will be  advised to give the modem an "ATZ" command before using PC-TALK
  70.     in  order   to reset the registers correctly.)  RBBS-PC  should be used only
  71.     with versions 123  and above of the  Hayes Smartmodem 1200 and  with version
  72.     247 and  above of  the Hayes  Smartmodem 2400.   Earlier versions   do   not
  73.     answer    the telephone  properly.     The  ATI  command will    cause   the
  74.     Smartmodem to tell you its version.
  75.  
  76.     Hayes is now shipping an external modem called the Hayes 1200FE that  has 10
  77.     switch settings.   To run RBBS-PC  switches 9 and  10 of the 1200FE  must be
  78.     left up (the factory setting).  Hayes is also now shipping an internal modem
  79.     called the  Hayes  1200BFE that  has  6 switch  settings.   To  run  RBBS-PC
  80.     switches 4, 5, and  6 must be left up  (the factory setting).  If  you can't
  81.     figure out what the switching settings  on these new modems should be  based
  82.     on  the switch  settings given  for  the "original"  Hayes 1200,  CALL HAYES
  83.     TECHNICAL SUPPORT!   Since I don't have the newer modems, I won't be of much
  84.     help if you call me.
  85.  
  86.     RBBS-PC CPC17-2A                                                Page 145
  87.  
  88.     12.2 Hayes Command's Considerations
  89.     -----------------------------------
  90.     The Hayes  commands used to  control the modem  are all external  to RBBS-PC
  91.     beginning with  version CPC13-1A.   These command strings  are in  the RBBS-
  92.     PC.DEF file which may be modified using CONFIG parameter 225.
  93.  
  94.     The  RBBS-PC.DEF file  contains five  Hayes command  strings --  one  on the
  95.     second line of  the .DEF file and  four on the last  line of the .DEF  file.
  96.     Using  RBBS-PC's  CONFIG  utility's defaults,  the  command  strings  are as
  97.     follows:
  98.  
  99.     12.2.1 Command to Reset the Modem
  100.     ---------------------------------
  101.     The modem reset command is the first option in CONFIG parameter 225 and it's
  102.     default value is the Hayes command string:
  103.  
  104.     Command    Meaning
  105.  
  106.     AT         Signifies the following characters are Hayes commands.
  107.     Z          Causes a software reset and applies all default values.
  108.  
  109.     This command is ALWAYS  issued and is the first command  issued to the modem
  110.     every time RBBS-PC gets ready for calls.
  111.  
  112.     12.2.2 Command to Initialize the Modem
  113.     --------------------------------------
  114.     The modem initialization command is ALWAYS issued and is the second  command
  115.     issued to the modem every time RBBS-PC gets ready for calls.
  116.  
  117.     The modem initialization  command is the  second option in CONFIG  parameter
  118.     225 and it's default value is one of the following Hayes command strings.
  119.  
  120.     If CONFIG  has been used  to set RBBS-PC  to answer  on a ring  greater than
  121.     zero, the command string is:
  122.  
  123.     Command    Meaning
  124.  
  125.     AT         Signifies the following characters are Hayes commands.
  126.     M0         Turn the monitor speaker on the modem off permanently.
  127.     Q1         Do not return result codes to the PC.
  128.     S2=255     Disable escape code detection.
  129.     S10=30     Do not drop disconnect user unless carrier drops for more
  130.                than seconds (you may want to set this to 15)
  131.     E0         Do not echo characters back to the PC when receiving Hayes
  132.                commands.
  133.     Q0         Send result codes to the PC.
  134.     X1         Tells the modem to send "extended" result codes to the PC.
  135.     S0=x       "x" is set as follows:
  136.                  S0=254  to answer on a specific number of rings > 0
  137.                  S0=255  to enable "ring-back"
  138.  
  139.     RBBS-PC CPC17-2A                                                Page 146
  140.  
  141.     If CONFIG sets RBBS-PC to answer on zero rings, the command string is:
  142.  
  143.     Command    Meaning
  144.  
  145.     AT         Signifies the following characters are Hayes commands.
  146.     M0         Turn the monitor speaker on the modem off permanently.
  147.     Q1         Send result codes to the PC.
  148.     S2=255     Disable escape code detection.
  149.     S10=30     Do not drop disconnect user unless carrier drops for more
  150.                than seconds.  Some of the Hayes ROM's have a bug in them
  151.                that causes the modem to only answer at 1200 baud if anything
  152.                other than the factory default is used for S10.  If you 
  153.                have such a problem, simply set S10 equal to 7.
  154.     E0         Do not echo characters back to the PC when receiving Hayes
  155.                commands.
  156.     Q0         Send result codes to the PC.
  157.     X1         Tells the modem to send "extended" result codes to the PC.
  158.     S0=1       Answer the phone on the first ring.
  159.     Q0         Send result codes to the PC.
  160.     X1         Tells the modem to send "extended" result codes to the PC.
  161.  
  162.     12.2.3 Command to Count The Number of Rings
  163.     -------------------------------------------
  164.     The modem  command that counts the  number of rings  is the third  option in
  165.     CONFIG parameter 225 and  it's default value is the following  Hayes command
  166.     string :
  167.  
  168.     Command    Meaning
  169.  
  170.     AT         Signifies the following characters are Hayes commands.
  171.     S1?        Requests the modem to return the number of times that the phone
  172.                has rung.
  173.  
  174.     This command string is only  issued when CONFIG has been used to  tell RBBS-
  175.     PC to answer on a  specific number of rings other than 0.   Some modems have
  176.     trouble with the S1? command because they do not recognize the ? part of the
  177.     command.  Again, verify what your modem is capable of handling.
  178.  
  179.     12.2.4 Command to Answer the Phone
  180.     ----------------------------------
  181.     The  modem  command to  answer  the phone  is  the fourth  option  in CONFIG
  182.     parameter 225 and it's default value  is one of the following Hayes  command
  183.     string :
  184.  
  185.     Command    Meaning
  186.  
  187.     AT         Signifies the following characters are Hayes commands.
  188.     Q0         Tells the modem to send result codes to the PC.
  189.     X1         Tells the modem to send "extended" result codes to the PC.
  190.     V1         "Extended" result codes are to be transmitted as words.
  191.     A          Tells  the modem to  answer the phone immediately.   This is only
  192.                issued if the number of rings to answer on is greater than 0.
  193.  
  194.     RBBS-PC CPC17-2A                                                Page 147
  195.  
  196.     RBBS-PC utilizes  the extended  verbal results  code (CONNECT,  CONNECT 300,
  197.     CONNECT 1200, and CONNECT 2400) to determine the callers baud rate.
  198.  
  199.     Some  Hayes 300  modems  don't function  with  RBBS-PC because  they do  not
  200.     recognize the "X1" command.   If you have a  modem like this, simply  remove
  201.     the X1 command from the command strings in the .DEF file.
  202.  
  203.     12.2.5 Command to Take the Phone Off the Hook
  204.     ---------------------------------------------
  205.     The modem  command to take  the phone off  the hook is  the fifth option  in
  206.     CONFIG parameter 225 and  it's default value is the  following Hayes command
  207.     string :
  208.  
  209.     Command    Meaning
  210.  
  211.     AT         Signifies the following characters are Hayes commands.
  212.     Q1         Do not return result codes to the PC.
  213.     E1         Echo characters back to the PC when handling Hayes commands.
  214.     H1         Take the modem off the hook (i.e. busy out the line).
  215.     M0         Turn the monitor speaker on the modem off permanently.      
  216.  
  217.     This  command is ALWAYS issued whenever the SYSOP is doing local maintenance
  218.     (i.e. hits ESC) or a user hangs up.
  219.  
  220.     12.2.6 Firmware Initialization
  221.     ------------------------------
  222.     The commands to  initialize the modem firmware are not contained in the .DEF
  223.     file,  but rather are  dynamically set (or  reset) each time  that CONFIG is
  224.     invoked.  There are essentially three commands:
  225.  
  226.         1.  A command to clear the modem's firmware.
  227.         2.  A command to initialize the modem's firmware.
  228.         3.  The command to write the initialized firmware to the modem's
  229.             non-volatile memory is "&W".
  230.  
  231.     The modem  command to  clear the  modem's firmware  is the  sixth option  in
  232.     CONFIG  parameter 225 and it's default  value is the following Hayes command
  233.     string:
  234.  
  235.     Command    Meaning
  236.  
  237.     AT         Signifies the following characters are Hayes commands.
  238.     &F         Load the modem active configuration area with the factory profile
  239.                contained in the Hayes ROM.
  240.  
  241.     RBBS-PC CPC17-2A                                                Page 148
  242.  
  243.     The modem command to initialize the  modem's firmware is the seventh  option
  244.     in  CONFIG parameter  225  and it's  default value  is  the following  Hayes
  245.     command string:
  246.  
  247.     Command    Meaning
  248.  
  249.     AT         Signifies the following characters are Hayes commands.
  250.     &C1        Data carrier detect tracks the state of the data carrier from
  251.                   the remote modem.
  252.     &D3        Modem is to assume the initialization state if it detects ON-
  253.                   to-OFF transition of DTR.  The newer versions of the Hayes
  254.                   2400 baud modem (ROM 249 or greater) and some clones do not
  255.                   allow RBBS-PC to recycle properly when the &D switch is set 
  256.                   to 3.  If you are having a problem, set the it to &D2.
  257.     B1         Set the modem to Bell 212A mode when the 1200 BPS data transfer
  258.                   rate is selected.
  259.     E0         Do not echo characters of the modem commands issued by RBBS-PC
  260.                   back to the PC running RBBS-PC.
  261.     V1         Select long-form result codes.
  262.     M0         Disable the modem's speaker when carrier is detected.
  263.     S0=0       Disable "auto-answer" mode.
  264.     &T5        Disallow a request from the remote modem for a remote digital 
  265.                   loopback test.
  266.  
  267.     The modem command  to write  the initialized  firmware to  the modem's  non-
  268.     volatile memory is the sixth option in CONFIG parameter 225 and it's default
  269.     value is the following Hayes command string:
  270.  
  271.     Command    Meaning
  272.  
  273.     &W         Write the firmware settings to non-volatile memory
  274.  
  275.     These three  commands are  ALWAYS issued  in  CONFIG when  parameter 231  is
  276.     selected.  These  commands can be temporarily  altered by changing  them via
  277.     parameter 225 of CONFIG prior to invoking parameter 231.
  278.  
  279.     RBBS-PC CPC17-2A                                                Page 149
  280.  
  281.     12.2.7 Smartmodem 9600 Firmware Initialization
  282.     ----------------------------------------------
  283.     The Hayes V-series Smartmodem 9600's active configuration should be:
  284.  
  285.     B1       -- Factory setting
  286.     E1       -- Factory setting
  287.     L1       -- Low speaker volume (unless you like noise).
  288.     M1       -- Factory setting
  289.     N1       -- Factory setting
  290.     Q0       -- Factory setting
  291.      T       -- touch tone (could be "P" for pulse dial).
  292.     V1       -- Factory setting
  293.     W1       -- Modem reports error-control call (i.e. LAP-B/HDX).
  294.     X1       -- Send result basic result codes plus CONNECT 1200, 2400, etc.
  295.     Y0       -- Factory setting
  296.     &C1      -- Factory setting
  297.     &D2      -- Disable auto-answer when carrier drops.
  298.     &G0      -- Factory setting
  299.     &J0      -- Factory setting
  300.     &K3      -- Factory setting
  301.     &L0      -- Factory setting
  302.     &P0      -- Factory setting
  303.     &Q5      -- Factory setting
  304.     &R0      -- Factory setting
  305.     &S1      -- Data Set Ready operates according to RS-232C standards.
  306.     &T5      -- Deny requests for remote loop back tests from calling modem.
  307.     &X0      -- Factory setting
  308.     &Y0      -- Factory setting
  309.     S00:254  -- Let phone ring 254 times before automatically answering it.
  310.     S01:000  -- Factory setting
  311.     S02:043  -- Factory setting
  312.     S03:013  -- Factory setting
  313.     S04:010  -- Factory setting
  314.     S05:008  -- Factory setting
  315.     S06:002  -- Factory setting
  316.     S07:054  -- Assume no carrier is detected within 54 seconds of answering.
  317.     S08:002  -- Factory setting
  318.     S09:006  -- Factory setting
  319.     S10:030  -- Let carrier drop for up to 30 seconds before disconnecting.
  320.     S11:095  -- Factory setting
  321.     S12:050  -- Factory setting
  322.     S18:000  -- Factory setting
  323.     S25:005  -- Factory setting
  324.     S26:001  -- Factory setting
  325.     S36:001  -- Factory setting
  326.     S37:000  -- Factory setting
  327.     S38:020  -- Factory setting
  328.  
  329.     The Hayes V-series Smartmodem 9600's have non-volatile memory that contains
  330.     three different possible configurations --
  331.  
  332.        1.  the active configuration,
  333.        2.  the profile 0 configuration, and
  334.        3.  the profile 1 configuration.
  335.  
  336.     To utilize the Hayes V-series 9600 modems with RBBS-PC, it is necessary that
  337.     the SYSOP
  338.  
  339.        1.  set the active configuration as shown on the previous pages, and
  340.        2.  write this active configuration to profile 0 with the &W0 command.
  341.  
  342.     RBBS-PC CPC17-2A                                                Page 150
  343.  
  344.  
  345.     This can be  done by temporarily  re-CONFIGuring the default modem  firmware
  346.     initialization  commands  via  parameter 225  (items  6,  7,  and 8)  before
  347.     initializing the Hayes Smartmodem 9600's firmware via parameter 231.
  348.  
  349.     RBBS-PC is able to interface with the Hayes V-series Smartmodem 9600 at 300,
  350.     1200, 2400,  4800, and 9600  baud.  When  operating at the two  highest baud
  351.     rates, the Hayes V-series Smartmodem 9600 is limited to connecting with only
  352.     other  Hayes V-series  Smartmodem 9600's.   RBBS-PC recognizes  whenever the
  353.     Hayes version of error-correction protocol,  "LAP-B", is enabled between the
  354.     caller and RBBS-PC.
  355.  
  356.     RBBS-PC has been tested with the  above active configuration and no problems
  357.     have been encountered  using the "internal" protocols supplied with RBBS-PC.
  358.     Questions regarding the Hayes V-series 9600 modems and any of the "external"
  359.     protocols which a SYSOP may choose to make available should be  addressed to
  360.     the authors of such protocols.
  361.  
  362.     RBBS-PC CPC17-2A                                                Page 151
  363.  
  364.     13.  RBBS-PC's FILE MANAGEMENT SUBSYSTEM
  365.     ----------------------------------------
  366.     The  File Subsystem  is the method  by which  RBBS-PC maintains the  list of
  367.     files that  are available  for downloading which  a caller  can list.   Some
  368.     features of the File  System are the ability to  list files after a  certain
  369.     date, to list files having  a string in their header,  and to list files  by
  370.     category.  RBBS-PC refers to a file that contains a  list of files available
  371.     for downloading as a "directory" (i.e. a .DIR file).
  372.      
  373.     There are  two possible extremes when working with the  File System.  One is
  374.     to have multiple separate "directory" files.  The other extreme is to have a
  375.     single master "directory"  file (i.e. a single  FMS file) that  contains the
  376.     names,  sizes,  dates,  and  description  of  all the  files  available  for
  377.     downloading.
  378.  
  379.     You may use both ideas at once if you wish. It is perfectly allowable to use
  380.     the master FMS directory  as well as the smaller ones.  CONFIG parameter 215
  381.     controls whether RBBS-PC  looks beyond the FMS directories.  If you have any
  382.     separate  directories,  set 215  to  NO.   If  you  have only  a  single FMS
  383.     directory, set parameter 215 to YES.   If directory searches are not limited
  384.     to the FMS directories  and RBBS-PC does  not find the  category in the  FMS
  385.     listing, it will look for the old-style DIR files.
  386.  
  387.     RBBS-PC CPC17-2A                                                Page 152
  388.  
  389.     13.1 Multiple Directory Format
  390.     ------------------------------
  391.     The multiple directories, also referred to as the old-style directories, are
  392.     simply text files. They consist of a filename ending in a certain extension,
  393.     specified in CONFIG,  common to all the directories.   The default extension
  394.     is .DIR, but  it can be  changed via parameter  209.  There  is a  directory
  395.     which  lists  the  directory names  and  their  descriptions  whose name  is
  396.     specified via parameter 211 of CONFIG.
  397.  
  398.     Each directory is simply a text file. It may have anything in  it, including
  399.     ANSI codes. The only  restriction is that in  order for the N)ew command  to
  400.     work properly, the date must be somewhere in the first 31 characters.
  401.      
  402.     A  file is classified in a directory simply  by being put into the file. The
  403.     SYSOP  can allow  the  caller to  classify uploads  (by setting  the minimum
  404.     security for classifying to a low enough value).  All uploads must go into a
  405.     single directory,  called the upload directory, specified  in parameter 202,
  406.     and it will  be in  the drive\path specified  in parameter  203.  All  other
  407.     directories must  be in  the drive\path  specified in  parameter 220.   This
  408.     includes  the  FMS  directory  (MASTER.DIR)  and  the  list  of  DIR  files,
  409.     (DIR.DIR).
  410.      
  411.     There are, therefore,  four logical areas into  which the file  subsystem is
  412.     divided. Each one may reside in a separate DOS directory, or all of them may
  413.     be lumped together into one main directory.
  414.  
  415.           Logical Area                    CONFIG
  416.     1. The files for DOWNLOAD             parameter 204, parameter 205, and
  417.                                           parameter 207
  418.     2. The files that have been uploaded  parameter 201 and parameter 206
  419.     3. The upload directory file listing. parameter 202 and parameter 203
  420.     4. The download directory files.      parameter 220
  421.  
  422.     The  files  in the  download  directory  are  the  only files  that  may  be
  423.     downloaded. The SYSOP may elect to have the upload directory also a download
  424.     subdirectory. This can be done by specifying it in the download "PATH".
  425.      
  426.     One  interesting  feature of  the File  Subsystem  is that  you can  build a
  427.     "chain" of drives and subdirectories to search for a given file.  The SYSOP,
  428.     via parameter  204, can  list the order  of the drives  to be  searched when
  429.     RBBS-PC is looking for the file to be downloaded. The parameter is specified
  430.     with  simply the letters,  together. For example: BAC  would search Drive B,
  431.     then Drive A, then  Drive C. Use this  parameter if you want to  search more
  432.     than one drive.
  433.  
  434.     If the  files are  not in  the default directory  then you  need to  use the
  435.     CONFIG parameter 205  and parameter 207.   Parameter 205 specifies that  you
  436.     want to sue DOS sub-directories and  parameter 207 allows you to list  them.
  437.     Use drive:\path format.
  438.  
  439.     Multiple directory .DIR files and the single FMS directory entry formats are
  440.     the same (see  section 13.4) except that the old  style separate directories
  441.     need not be fixed length and don't include the category code.
  442.  
  443.     Any directory can  be in the Single FMS format.  This allows special purpose
  444.     directories to be  put into FMS  format so they can  take advantage of  such
  445.     features as resumable listings normally associated  just with the Single FMS
  446.     environment.   An unlimited  number of  lines of  text can  be added to  any
  447.     description (see CONFIG parameter 40, parameter 148, and parameter 153).  
  448.  
  449.     RBBS-PC CPC17-2A                                                Page 153
  450.  
  451.     The  file  directories  have  absolutely  no  bearing  on  what  is  in  the
  452.     subdirectory.  A file can  be listed but not exist, and a file,  such as one
  453.     uploaded with the / for SYSOP option, may exist but not be entered. The file
  454.     directories are  simply methods  to get the  caller a  listing of  the files
  455.     available.
  456.  
  457.     RBBS-PC CPC17-2A                                                Page 154
  458.  
  459.     13.2 The Single and Chained FMS Directory Format
  460.     ------------------------------------------------
  461.     FMS logically just  lumps all the  old style  separate directories into  one
  462.     directory file, called the MASTER or FMS directory, and  assigning each file
  463.     a  CATEGORY  CODE, which  may  correspond to  the  directory it  was  in the
  464.     original directories.  A  utility program called CNVDIR.EXE will  do exactly
  465.     this: combine the separate directories and add the category code at the end.
  466.     If you do not  already have separate  directories, simply set  it up with  a
  467.     text editor using the columns indicated.
  468.  
  469.     Beginning with CPC17-2A FMS  directories can be "chained".   This means that
  470.     physically separate  files can  be logically combined  to form a  single FMS
  471.     directory.    This  is accomplished by  putting the following  in the header
  472.     record (a  header record in  an FMS directory is  the first record  and must
  473.     begin with "\FMS "):
  474.  
  475.                        CH(<chain to>)
  476.  
  477.     where <chain to> is the name of the file to chain to.  As an example
  478.  
  479.     \FMS CH(C:\DIRS\CHTO.DIR)
  480.  
  481.     would chain  to the  file "C:\DIRS\CHTO.DIR".   Names  of files  not in  the
  482.     default directory  must have a drive  and/or path specified.   The directory
  483.     chained to  can in turn have  a chain, and there  is no limit  to the number
  484.     that can be chained together.
  485.  
  486.     The directory chained to is an independent FMS directory and can be anywhere
  487.     and have any extension.    A given directory can have at  most one directory
  488.     to chain to.  Chained  directories can be used to keep  the upload directory
  489.     small for easier editing, or to better fit the latest directories on a  fast
  490.     RAM disk while keeping older directories on a slower hard disk (e.g. a SYSOP
  491.     divides the directories into UPLOADS.DIR, 87.DIR, 86.DIR, 85.DIR, and 84.DIR
  492.     to reflect the year in which the file was created/uploaded).
  493.  
  494.     RBBS-PC CPC17-2A                                                Page 155
  495.  
  496.     13.3  Advantages/Disadvantages of FMS Directory
  497.     -----------------------------------------------
  498.     Having a FMS directory has the following advantages:
  499.  
  500.     1.    Callers get  the newest  files  listed first.   The  directory  can be
  501.     displayed EITHER  from top to bottom or bottom  to top.  Reading from bottom
  502.     up is appropriate when files are in date order and new files are appended to
  503.     the bottom.   When files are  alphabetized or grouped some other  way, it is
  504.     more appropriate to read them from the top down.
  505.  
  506.     2.  The directory is listed with MORE ([Y],N) or files to download prompts
  507.     throughout the listing, so at any time the caller may begin downloading, and
  508.     pick up where they left off in the listing after the download is completed.
  509.  
  510.     3.  Wildcard searches on filenames are supported as well as exact matches on
  511.     strings in the  file S)earch command.  Whenever a wild card character (* and
  512.     ?) is  specified in the search  string, RBBS-PC will  automatically shift to
  513.     matching just  the file name.   Exact string  matches search the  full entry
  514.     rather  than  just  the  file  name.     String  searches  include  extended
  515.     descriptions for FMS directories, but in  non-FMS directories only the first
  516.     line of the file description is searched.
  517.  
  518.     4.  Classification of files is easy. All that is necessary is an editor that
  519.     produces ASCII files, and a file is classified by a category code of up to 3
  520.     characters.  To  change a  file  from directory  to directory,  all  that is
  521.     necessary is to change the category code. No more "erase  it here and add it
  522.     there."
  523.  
  524.     5.    No SYSOP  maintenance is  necessary  for new  uploads. The  caller can
  525.     classify the upload with a category code, and the SYSOP can specify that the
  526.     new uploads become instantly available.
  527.  
  528.     6.  Complex classifications can be made very simply. A  category code is not
  529.     necessarily  the category the  caller must type  in. The SYSOP  can elect to
  530.     have a classification  system where one code  that the caller types  in will
  531.     list  several  different category  codes. You  can include  the file  in two
  532.     directories without having two separate entries.
  533.  
  534.     7.  FMS  directories can have "headers" (i.e. free text lines not associated
  535.     with any  particular file).  This allows things  like column headers or help
  536.     to be included, as well as section headers.   A SYSOP may wish to separate a
  537.     "communications directory"  into different sections  such as one  for QMODEM
  538.     and one for RBBS-PC.   A free text  line begins with "*" and  is universally
  539.     displayed if the category code is "***"  otherwise it is only displayed when
  540.     the category associated with the line is selected.
  541.  
  542.     8.  Multi-line descriptions (i.e. "extended"  descriptions) are supported in
  543.     both FMS and  "old-style" directories.  All columns except the first one are
  544.     available  for the description.   For FMS  directories extended descriptions
  545.     have the same characteristics as the file that they are associated with.
  546.  
  547.     9.  The ability to enter "extended" descriptions for uploaded files is based
  548.     on the caller's security level (see CONFIG parameter 127).
  549.  
  550.     10.  Caller's can list the RBBS-PC file directories with or without extended
  551.     description.  As an example, a caller would  enter the command "L - UPLOADS"
  552.     to list the  files in the directory UPLOADS with only one line descriptions.
  553.     The  command  "L  +  UPLOADS"  would  list   the  same  file  with  extended
  554.     descriptions.
  555.  
  556.     RBBS-PC CPC17-2A                                                Page 156
  557.  
  558.     11.  Archived files can  be viewed with  the V)iew command  when listing FMS
  559.     directories and the listing  will resume where it left off  prior to issuing
  560.     the V)iew command.
  561.  
  562.     12. Individual entries within a FMS directory can be restricted to  specific
  563.     security levels.
  564.  
  565.     13. Comment lines can  be included in FMS directories which  are never shown
  566.     to a  caller.  Often such comments are useful  reminders to the SYSOP who is
  567.     maintaining the FMS directories.
  568.  
  569.     14. Callers can  add upload descriptions  without actually uploading a  file
  570.     (see  CONFIG parameter 153).   This  is typically useful  to the  SYSOP.  It
  571.     makes  it  easy to  start an  FMS  upload directory  without having  to know
  572.     anything about its internals or how to use an editor.  With the exception of
  573.     a CORVUS network environment, FMS directories  can be updated without taking
  574.     the system down  first.   All the  caller does  is issue  the normal  upload
  575.     command.  If RBBS-PC finds that the file already exists and that the  caller
  576.     has the necessary security level, RBBS-PC will get the file size and proceed
  577.     exactly as if the file had just been uploaded.
  578.  
  579.     15. Searches  for new files is EXTREMELY fast  because RBBS-PC does not have
  580.     to search all directories if the single FMS directory is in date order (most
  581.     recent date last)
  582.  
  583.     16.  Latest uploads are always shown first, if the SYSOP has elected to make
  584.     them viewable and the master FMS is in date order.
  585.  
  586.     17. Searches  for  text  will  scan  the text  in  the  extended  multi-line
  587.     descriptions.
  588.  
  589.     18.  Composite  categories   can  be  logically  constructed  out  of  other
  590.     categories (see section 13.5).
  591.  
  592.     19. Entries do  not have to  be physically moved to  other .DIR files  to be
  593.     classified as belonging to it.
  594.  
  595.     20.  FMS  directories  can  be  "chained" to  accommodate  those  multi-user
  596.     environments, such  as Corvus's  OMNINET, which  will not  allow files  that
  597.     change in length to be shared. In  such an environment FMS can be used,  but
  598.     the  FMS directory must "chain" to the upload  directory and their must be a
  599.     separate upload directory for each node.
  600.  
  601.     RBBS-PC CPC17-2A                                                Page 157
  602.  
  603.     Regrettably, the FMS directory also has  ONE remaining limitations which may
  604.     make it unsuitable for all SYSOPs needs.
  605.  
  606.     1. The date must be in MM-DD-YY  format. Any single digit number must have a
  607.     leading zero.
  608.      
  609.     If  FMS does not totally satisfy your needs,  you can use both.  RBBS-PC can
  610.     be configured to  look for  an old  style directory if  it does  not find  a
  611.     directory in the FMS.   If it finds one it will display it. If  it does not,
  612.     it displays the familiar "Directory XXX not found!" message.
  613.  
  614.     RBBS-PC CPC17-2A                                                Page 158
  615.  
  616.     13.4  Creating FMS Directories
  617.     ------------------------------
  618.     If you already  have separate directories, it  would be a good idea  to copy
  619.     all of them  into a single one  called MASTER.DIR.  Detailed  directions are
  620.     given in the documentation for CNVDIR.   In DOS this can be done like this:
  621.      
  622.                     COPY xxx.DIR+xxx.DIR+xxx.DIR... MASTER.DIR
  623.      
  624.     where xxx  is the  name of the  old style  directories. The  3 dots mean  to
  625.     continue until you  have all of the directories  you wish to include  in the
  626.     FMS directory.
  627.     In addition to the "old style"  file directories described in section  13.1,
  628.     RBBS-PC  supports two types of FMS "directories" -- multiple, single-subject
  629.     FMS directories or a single multiple-subject master FMS directory.  If there
  630.     are going to be multiple, single-subject FMS directories, there must also be
  631.     a  "directory  of  directories" (i.e.  a  master  directory)  whose name  is
  632.     specified in CONFIG parameter 211 and there can not be more than 99 of these
  633.     single-subject FMS  directories.   If  there is  going to  be  a single  FMS
  634.     directory, it's name is specified in CONFIG parameter 214 and it's qualifier
  635.     is specified in CONFIG parameter 209.
  636.  
  637.     An example of multiple FMS directories that assumes the following:
  638.     CONFIG parameter 220 is "C:\FMS",
  639.     CONFIG parameter 209 is "DIR",
  640.     CONFIG parameter 211 is "DIR", and the following files existed:
  641.  
  642.        C:\FMS\DIR.DIR
  643.        C:\FMS\ALPHA.DIR
  644.        C:\FMS\BEST.DIR
  645.  
  646.     The file ALPHA.DIR  can be a FMS directory with an  alphabetical list of all
  647.     files and BEST.DIR can  be a FMS directory with a  date-ordered (latest date
  648.     last) list of the "best" files.
  649.  
  650.     An  FMS directory  can have  an optional  "header" line  that describes  the
  651.     structure of the directory.  RBBS-PC searches FMS directories from bottom to
  652.     top by default (i.e. the assumption is that they are sorted by date with the
  653.     newest entry  at the bottom).   To make  an FMS directory  read from top  to
  654.     bottom, the  directory must  have the  optional "header" line  as the  first
  655.     line. For  FMS to read  a FMS directory  from top  to bottom the  first four
  656.     characters in the first line must be "\FMS" and the line  must contained the
  657.     three characters "TOP"  (i.e. the whole  fixed-length line would read  "\FMS
  658.     TOP").  For FMS directories  not sorted by  date, the word  "NOSORT" must be
  659.     present  in  the  first line  (i.e.  the  whole line  would  read  "\FMS TOP
  660.     NOSORT").  The  file ALPHA.DIR would have  the first line  in the file  read
  661.     "\FMS TOP NOSORT".  The file BEST.DIR  would have the first line in the file
  662.     read  "\FMS TOP" if all searches  of the file were  to start with the oldest
  663.     (i.e. first) entry.   It is important  to realize that FMS  directories must
  664.     have a fixed length in every line.
  665.  
  666.     RBBS-PC CPC17-2A                                                Page 159
  667.  
  668.     The columns of all FMS directories are set up as:
  669.  
  670.     Column               Purpose
  671.  
  672.      1-13                Filename
  673.     14-22                File size
  674.     24-31                Date in MM-DD-YY format
  675.     34-                  Description + category code
  676.  
  677.     To add comments to an FMS  directory and not have them shown to  the caller,
  678.     simply begin the comment line with a slash, "\".
  679.  
  680.     To force a line to be displayed that is not associated with an FMS directory
  681.     entry, begin  the line  with an asterisk  and, if it  is displayed  for only
  682.     specific categories, the appropriate category restriction.
  683.  
  684.     To make an FMS entry visible only to  callers with a specific security level
  685.     or higher, the first character of the  file name must be an equal sign, "=".
  686.     For this  entry, the file  name is  in columns  2 through 13.   The  minimum
  687.     security to view this entry goes in column 34 and is followed by a blank and
  688.     then the description  and category code  within the columns appropriate  for
  689.     them (based on CONFIG parameter 219).
  690.  
  691.  
  692.     CONFIG parameter 219 specifies the length of  the "description" field (40 to
  693.     46).  The column containing the "category" codes can be variable as follows:
  694.  
  695.      
  696.     Length            Columns for description      Category code column
  697.  
  698.      40                     34-73                        74-76
  699.      41                     34-74                        75-77
  700.      42                     34-75                        76-78
  701.      43                     34-76                        77-79
  702.      44                     34-77                        78-80
  703.      45                     34-78                        79-81
  704.      46                     34-79                        80-82
  705.  
  706.     However, some text editors may have a problem with lines 80 or more columns.
  707.      
  708.     The  fussiest areas for use with FMS are  the DATE and CATEGORY CODE fields.
  709.     These two  must  be absolutely  perfect for  FMS to  function properly.  The
  710.     others may be slightly  more lenient. In order  to get the directory  in the
  711.     correct format, insert and  delete spaces before and after the  column.  The
  712.     file name should not have interior or leading blanks.
  713.      
  714.     You  must also add a category  code to each listing.  This is often the most
  715.     difficult and  time consuming  part of  setting up  FMS. A  good idea  is to
  716.     format the rest of the directory before you add the codes.
  717.      
  718.     CONFIG has  a utility,  parameter 187,  that will  check your FMS  directory
  719.     structure for you.   If  a caller uploads  with a  "/" for SYSOP,  a ***  is
  720.     placed for the category code and only  those with a SYSOP security level may
  721.     view the listing (see CONFIG parameter 125).
  722.  
  723.     RBBS-PC CPC17-2A                                                Page 160
  724.  
  725.     13.5 Defining the FMS Category Codes
  726.     ------------------------------------
  727.     In  order for  FMS to work  correctly, the  category codes must  be defined.
  728.     This is done  in a file specified  in parameter 217 of CONFIG.  This file is
  729.     rather interesting in  the way it is set up and  the possibilities it brings
  730.     up. The format of this file is, with each line being a separate entry:
  731.  
  732.     "<Category name>","<Category codes>","<Category description>"
  733.      
  734.     The category name  is what the caller  types in L;xxxxxxxxxx.   The category
  735.     codes are a list of the character codes in the FMS directory that we want to
  736.     be under this category name.  Category codes can be  1 to 3 characters long,
  737.     though  the simplest and most foolproof method is to make them all exactly 3
  738.     characters long.  The category description is  a short messages that we want
  739.     displayed when the category is searched for.
  740.      
  741.     If the category codes are  less than 3 characters in length,  blanks must be
  742.     added to  the right to  fill out  the length to  exactly 3 when  putting the
  743.     category codes on the end of file entry.
  744.  
  745.     A listing can  contain several category  codes. This means  that a  category
  746.     name of BASIC could have the category codes BSU,BSG,BSS in it.  The category
  747.     codes may be  overlapped in several different directories.  For example, the
  748.     BASIC directory  used as an  example could also  have each code  included in
  749.     another directory.  UTILS could contain  DSU,PRU (Dos utils, Printer utils).
  750.     GAMES  could contain  CGG,BSG,TXG (Color Graphics  Games, Basic  Games, Text
  751.     games).  BASIC could contain BSG,BSS  ( Basic Games, Basic Source).   SOURCE
  752.     could  contain ACS,BSS  (Assembly code source,  Basic Source)   Such a setup
  753.     would look like this:
  754.  
  755.         "BASICG","BSG","Basic Games"
  756.         "TEXTG","TXG","Text Games"
  757.         "COLORG","CGG","Color Graphics Games"
  758.         "PRINT","PRU","Printer Utilities"
  759.         "DOS","DSU","Dos Utilities"
  760.         "ASSEM","ACS","Assembler source code"
  761.         "BSOURCE","BSS","Basic Source Code"
  762.         "UTILS","DSU,PRU","Utilities for IBM"
  763.         "GAMES","CGG,BSG,TXG","Games for IBM"
  764.         "BASIC","BSG,BSS","BASIC programs"
  765.         "SOURCE","ACS,BSS","Source code for different languages"
  766.  
  767.     The directory might look like:
  768.  
  769.     FFIND.ARC      13463   05-24-87  DOS Util look all over disk for file   DSU
  770.     QUEST.ARC      17325   06-02-87  C/G Game D&D style                     CGG
  771.     RBBS-SRC.ARC  202562   06-05-87  Source code for RBBS-PC                BSS
  772.     QMODEMSC.ARC  106735   06-07-87  Source code for QMODEM SST             PSS
  773.     BALLOON.ARC     5634   06-08-87  BASIC Balloon game- GREAT              BSG
  774.     STARTREK.ARC   76434   06-10-87  A great game- TEXT                     TXG
  775.      
  776.     When someone lists out GAMES, they get QUEST, BALLOON, and STARTREK.
  777.      
  778.     You  can also  have simply a  one to  one correspondence, rather  than cross
  779.     referencing by just having one category code for each category.
  780.  
  781.     A utility that  will help you in  setting up your  FMS directory is a  SYSOP
  782.     function built  into CONFIG.  Parameter 187 will  test the structure of your
  783.     FMS directory and diagnose any problems.  Be sure to  run this utility after
  784.     you have tried to set up FMS, or whenever you edit the FMS directory file.
  785.  
  786.     RBBS-PC CPC17-2A                                                Page 161
  787.  
  788.     13.6 The "Library" Subsystem, CD-ROM, and FMS
  789.     ---------------------------------------------
  790.     The RBBS-PC "library" sub-system is highly flexible subsystem  that utilizes
  791.     DOS 'disk  subdirectories.  The  "library" subsystem is  not limited  to any
  792.     particular medium.  Basically, it relies on three files:
  793.  
  794.     CDR.CDR   -  This is the  Directory of Directories just like DIR.DIR is  the
  795.     Directory of Directories for the normal download area.  This file is located
  796.     on the drive  and path designated in  CONFIG parameter 302, has  a file name
  797.     equal to  the extension  designated  in parameter  303 ,  and the  extension
  798.     designated in parameter 303.
  799.  
  800.     MASTER.CDR -  This is an FMS style directory.  Highly recommended to have  a
  801.     size  of 46  to allow  for placing  the DISK/AREA  number in  the last  four
  802.     positions of  description.   This  file is  located on  the  drive and  path
  803.     designated in CONFIG parameter 302.  The following is an example of a master
  804.     directory  file,  C:MASTER.CDR,  that  might  be  used  for  the   "library"
  805.     subsystem.
  806.  
  807.          DEMO.DTA         9841  01-01-80 PRACTICE FORM                 680126
  808.          READ.ME           256  01-01-80 INTRODUCTORY TEXT FILE        673102
  809.          READ.ME           109  01-01-80 INTRODUCTORY TEXT FILE        671102
  810.           DK0680   ARC          10-23-87 FORGE VERSION 2.0                200
  811.           DK0673   ARC          10-23-87 FREEWAY ...(Disk 3 of 3)         200
  812.           DK0671   ARC          10-23-87 FREEWAY ... (Disk 1 of 3)        200
  813.          |            |         |        |                            |   |
  814.          +- 1->13     |         |        |                            |   |
  815.          File Name    +- 14->22 |        |                            |   |
  816.                       File Size |        |                            |   |
  817.                                 +- 24->31|                            |   |
  818.                                 File Date|                            |   |
  819.                                          +- 33->76                    |   |
  820.                                          File Description             |   |
  821.                                                               77->79 -+   |
  822.                                                                  DOS      |
  823.                                                                Directory  |
  824.                                                                 Number    |
  825.                                                                           |
  826.                                                                   80->82 -+
  827.                                                                   Category
  828.                                                                     Code
  829.  
  830.         The last four characters of the  46-character file description field are
  831.     used to  indicate the "library"  pseudo-disk that the  file is in.   In this
  832.     way, when a  caller lists files, it is self-evident in the description which
  833.     DOS subdirectory the caller must change to within the "library" subsystem in
  834.     order to download the file.
  835.  
  836.     RBBS-PC CPC17-2A                                                Page 162
  837.  
  838.     RBBS-CDR.DEF  -   This is the  key file to  the successful operation of  the
  839.     LIBRARY section.  It consists of three fields on each line.
  840.  
  841.                      "AAAA","BBBBBBBBBBBBBBBBBBBBBB","CCCCCCCCCCCCCCCCCC"cr/lf
  842.  
  843.                      A - A  four  position field numbered from  0001  to  9999.
  844.                          This  is the DISK/AREA number assigned to  a  specific
  845.                          group of files.
  846.  
  847.                      B - This field has no size limit and is a full path to the
  848.                          area excluding the drive: designation. As an example:
  849.  
  850.                                \1_100\DISK0001
  851.                                \GAMES\ADVENTUR\DISK1
  852.                                \A_F\ALPHABET\DISK01\AREA36
  853.  
  854.                      C - This  field has no length limit but should be kept  at
  855.                          around  56  characters to keep from line wrap  on  the
  856.                          display.    It  should  contain  the  TITLE   of   the
  857.                          disk/area.
  858.  
  859.     A file containing  a description of  the library subsystem's category  codes
  860.     must have the  name RBBS-CDR.DEF,  be in  the same DOS  subdirectory as  the
  861.     other RBBS-PC ".DEF" files, and look similar:
  862.  
  863.                 "0671","\601-700\DISK671","FREEWAY Payroll system (Disk 1 of 3)"
  864.                 "0673","\601-700\DISK673","FREEWAY Payroll system (Disk 3 of 3)"
  865.                 "0680","\601-700\DISK680","FORGE VERSION 2.0"
  866.  
  867.     The "library" subsystem can be supported without using  the FMS.  To do this
  868.     each "directory" would have ".CDR" as it's extension  (i.e. GAMES.CDR) -- or
  869.     whatever extension was designated in CONFIG parameter 303.
  870.  
  871.     Typically, the "library"  subsystem is used with  FMS.  When using  FMS with
  872.     the "library"  subsystem it is  necessary to  add categories to  the DIR.CAT
  873.     file.   One approach that  works well is  utilizing categories 1-99  for the
  874.     normal  (i.e. non-library  area) downloads  and categories  100-200 for  the
  875.     "library" downloads.
  876.  
  877.     The basic assumption  of RBBS-PC's  "library" sub-system is  that files  are
  878.     stored  in DOS  subdirectories on  the DOS  disk drive  specified in  CONFIG
  879.     parameter 301.
  880.  
  881.     RBBS-PC CPC17-2A                                                Page 163
  882.  
  883.     13.6.1 How the "Library" Subsystem Works
  884.     ----------------------------------------
  885.     Before it is possible to download from the LIBRARY area it is mandatory that
  886.     the  caller C)hange to  the desired library  disk.  This  is accomplished by
  887.     using the C)hange command from the library menu.  RBBS-PC will accept any  1
  888.     to 4 digit  number (padding the  front with zeros  to make it  a four  digit
  889.     number).   RBBS-PC will  then search  the RBBS-CDR.DEF  file (position  AAAA
  890.     only) for an exact match.  If no  match is found then RBBS-PC indicates that
  891.     no Library disk  has been selected.  If  a match is found  then RBBS-PC will
  892.     issue a CHDIR command to the drive specified in CONFIG parameter 301 and the
  893.     path BBBBBBBB that it constructs from the  RBBS-CDR.DEF file.  RBBS- PC then
  894.     informs the caller that Disk AAAA CCCCCCCCCCCC has been selected (i.e. "Disk
  895.     0680 FORGE VERSION 2.0").
  896.  
  897.     The caller can download individual files from the area  selected or A)rchive
  898.     all the  files in the selected area.  If  the caller decides to A)rchive all
  899.     the files in  the selected area, RBBS-PC  will SHELL to the  Archive program
  900.     designated  in  CONFIG  parameter 313  and  located  in the  drive  and path
  901.     designated by parameter 312.  RBBS-PC creates an archived file with the name
  902.     DKAAAA.ZZZ,  where  AAAA is  the disk/area  number  on the  drive and   path
  903.     indicated by  CONFIG parameter 304, and ZZZ  is the extension, which depends
  904.     on what archiving program is used.
  905.  
  906.     RBBS-PC will then  check to see if  there are any subdirectories  within the
  907.     selected  area.    If  any  exist  then   RBBS-PC  will  again  Archive  the
  908.     subdirectories and will  create ZZZ  files with the  name DKAAAAa.ZZZ  where
  909.     AAAA is the  disk/area number.  The  designator, "a", is an  arbitrary id to
  910.     differentiate it from  the original ZZZ  name.  If  there are more than  one
  911.     subdirectories then the "a" would be replaced by "b", "c", "d", etc.
  912.  
  913.     When this is complete the caller is told what files are ready for download.
  914.     E.g.
  915.  
  916.          DKAAAA.ZIP is ready for download.
  917.          DKAAAAa.ZIP is ready for download.
  918.          DKAAAAb.ZIP is read for download.
  919.  
  920.     As each file is downloaded successfully  it is removed from the list  and is
  921.     no longer displayed to the user as ready for download.
  922.  
  923.     RBBS-PC CPC17-2A                                                Page 164
  924.  
  925.     13.6.2 The "Library" Subsystem and PC-SIG's CD-ROM
  926.     --------------------------------------------------
  927.     The CD-ROM published  by PC-SIG consists of a DOS subdirectory for each 360K
  928.     diskette in  the PC-SIG library.  Sometimes the disk contains  all the files
  929.     already in the ARC  format other times they just  contain a group of  files.
  930.     The  key here  is the  A)rchive function.   The  resulting file  to  be made
  931.     available for  download will NEVER be greater than  360k.  This is important
  932.     since a caller may only  have a floppy based system and could  not capture a
  933.     file any larger than a 360k floppy can contain.
  934.  
  935.     The PC-SIG's CD-ROM creates the problem of listing both the individual files
  936.     contained  on  each diskette  as  well  as  a  summary  description  of  the
  937.     individual disks.  This  can be solved by listing each of  the 18,000+ files
  938.     in the MASTER.CDR using  positions 43-76 for the description,  positions 77-
  939.     79  for the  disk drive, and  positions 80-82  for the valid  categories for
  940.     downloading.  These are contained in the file specified by CONFIG  parameter
  941.     217.
  942.  
  943.     MASTER.CDR might also  contain a list of  names of the  files that would  be
  944.     created by the A)rchive function.  This allows the caller to scan a category
  945.     (i.e. category 200) for  disk titles only.  Note that the files do not exist
  946.     until the user uses the A)rchive function. A SYSOP who did not wish to allow
  947.     individual file downloads might only include these entries in the MASTER.CDR
  948.     rather than the other 18,000 entries.
  949.  
  950.     The  directory for the PC-SIG CD-ROM is over 1.5 megabytes in length and can
  951.     take up to 10 minutes to search completely (when using a PC at 4.77mhz).
  952.  
  953.     If the SYSOP is using FMS, it is  recommended that the category file for the
  954.     normal FMS directory  and the category file for the Library FMS directory be
  955.     the same (PC-SIG has 27 different categories for its files).
  956.  
  957.     RBBS-PC CPC17-2A                                                Page 165
  958.  
  959.     13.7 Creating the Personal Files Directory
  960.     ------------------------------------------
  961.     RBBS-PC's  "personal" file  support  is analogous  to  RBBS-PC's support  of
  962.     "personal"  messages  in  that these  files  are  specially  addressed to  a
  963.     specific caller  or  group of  callers  based on  security.   Personal  file
  964.     downloads differ from the general download in three major ways:
  965.  
  966.     1.    the time limit check is bypassed in personal downloads, meaning that a
  967.           qualifying caller can download a file regardless of time left.
  968.  
  969.     2.    only  files  explicitly  listed  in  the  personal  directory  can  be
  970.           downloaded.  Normally files to be downloaded will be looked for on the
  971.           disk(s) where  files are  available for downloading  whether they  are
  972.           listed in a directory or not.
  973.  
  974.     3.    only callers  with  matching user  record or  sufficient security  can
  975.           download a  file.  Normally any  caller with security  enough to issue
  976.           the download command can download a file.
  977.        
  978.     Personal files  provide  a way  that  files  can be  delivered  to  specific
  979.     individuals.    As an  example,  a vendor's  support  bulletin  board for  a
  980.     software  product  might  make  the  upgrade  downloadable  only  by  paying
  981.     customers.    A   credit  reporting  corporation  can  make  credit  reports
  982.     electronically available only to the people who order them.  Or, a SYSOP can
  983.     make a file privately available to only one caller.
  984.  
  985.     One of  the  most useful  applications  for personal  downloads  is to  make
  986.     certain files  available regardless of  time remaining.   Previously, SYSOPs
  987.     had to increase  the security  of callers or  set artificially high  session
  988.     limits just to  make certain large files  available.  By putting  these file
  989.     names in the personal directory  and limited by security level, these  files
  990.     can be  made available regardless of how little  time is left.  For example,
  991.     the large files comprising  RBBS-PC can be made downloadable  to all callers
  992.     even though they are limited to 30 minutes.
  993.  
  994.     Access to personal files can  be limited in two ways.  First,  the files can
  995.     be downloaded  only by  callers which have  a matching  value in  their user
  996.     record.   For example, files can be  limited by name (any field  in the user
  997.     record  can be  selected).  Alternatively  files can be  limited by security
  998.     level, meaning  that  a file  can  be downloaded  by  any person  with  that
  999.     security  level or higher.  File access based  on security level can also be
  1000.     accomplished using the standard  RBBS-PC file security mechanism, but  to do
  1001.     so places the  caller's under  the standard RBBS-PC  constraints of  maximum
  1002.     time per session/day.
  1003.  
  1004.     Using the "P)ersonal files" command in the files section, a caller  is asked
  1005.     what files  the caller wants to  download.  The only files  available to the
  1006.     caller  for  downloading are  those explicitly  listed  as belonging  to the
  1007.     caller, unlike the general  download command which  will look for any  named
  1008.     file on the disk.  The caller can ask  to List the files available.  Callers
  1009.     will see only those belonging to them.
  1010.  
  1011.     There  is  a  special  option to  download  all  and  only  the "new"  files
  1012.     specifically addressed to  the user by matching a field in the caller's user
  1013.     record.   RBBS-PC keeps track of whether the  caller has ever downloaded the
  1014.     personal file.  When listing,  new personal files are marked with  an "*" in
  1015.     front of their names (they are "tagged").  Selecting the new files starts  a
  1016.     multi-file download for all and only the personal files the caller has never
  1017.     successfully downloaded.
  1018.  
  1019.     RBBS-PC CPC17-2A                                                Page 166
  1020.  
  1021.     Files you want downloaded ONLY through the personal file features of RBBS-PC
  1022.     should be  put in their  own subdirectory  as specified in  CONFIG parameter
  1023.     142.  If you put the personal files in a download subdirectory they would be
  1024.     available then  to anyone  who could  name them.   RBBS-PC  will search  the
  1025.     download areas for a  personal file if it is  not found in the  subdirectory
  1026.     specified in parameter 142.
  1027.  
  1028.     Second, in the same place as the personal files themselves, put in a special
  1029.     personal  directory  with name  specified  in  CONFIG parameter  143.   This
  1030.     directory is the  same format as the  general file directories of  RBBS- PC.
  1031.     The format is as follows:
  1032.  
  1033.      Default   Field
  1034.     Positions  Length    Description of Field
  1035.  
  1036.      1 - 12      12      The first 12 characters of an entry have the file name,
  1037.                          with no internal spaces.
  1038.  
  1039.     13 - 73  Variable    The next group of characters can have anything in them.
  1040.                          This will be  displayed to  the caller who  asks for  a
  1041.                          listing,  along with  the  file name  in  the first  12
  1042.                          columns.   The length  of this group  is 21  characters
  1043.                          plus  the length of the upload description specified in
  1044.                          CONFIG (40-46, defaults to 40).   The default length of
  1045.                          this field is 61 characters.
  1046.  
  1047.     74 -104    Variable  The  next  group of  characters  are what  is  used  to
  1048.                          identify the file as "belonging" to the caller and must
  1049.                          match a field in the user  record.  In CONFIG parameter
  1050.                          43 and parameter  44, the SYSOP specifies  the position
  1051.                          in the user record to use and how many characters.  The
  1052.                          default is to begin  in column 1 and use  31 characters
  1053.                          for the caller's name, but any field in the user record
  1054.                          can be used. Optionally, a  security can be entered  in
  1055.                          this last field to limit the file based on the security
  1056.                          level of the  caller.   To use security  rather than  a
  1057.                          match on the  user record,  simply put a  blank as  the
  1058.                          first  character in the field, followed by the security
  1059.                          level.
  1060.  
  1061.     1051  The last character  must be an "*" to signify that the  file has never
  1062.     been downloaded or an exclamation point if ever downloaded.
  1063.  
  1064.     This personal  directory works  very much  like the  File Management  System
  1065.     shared directory,  using a  field in  the user  record as  the category  and
  1066.     limiting callers to their one category, or limiting the file to the group of
  1067.     caller's with  the minimum  required security.   The  personal directory  is
  1068.     fixed length and read in reverse from bottom to top.
  1069.  
  1070.     After  setting up  or modifying the  personal directory, you  use the CONFIG
  1071.     utility parameter 187 to check whether the personal directory has the proper
  1072.     format.
  1073.  
  1074.     The  personal directory can be created by a  text editor (i.e. EDLIN) but be
  1075.     sure to put in the  "*" in the last column when creating a new entry so that
  1076.     the file will  be tagged  as new.   Also be  sure to make  each entry  fixed
  1077.     length.  If  the user's identity does  not fill out  the length of the  last
  1078.     field, be sure to pad the record with blanks out to the full length.
  1079.  
  1080.     When setting  up a  personal file  directory there  are seven  configuration
  1081.  
  1082.     RBBS-PC CPC17-2A                                                Page 167
  1083.  
  1084.     options peculiar to personal files:
  1085.  
  1086.     CONFIG           Description
  1087.     parameter 43      what part of the user record used to identify files as
  1088.     parameter 44      belonging to the user (beginning column and length),
  1089.     parameter 143     the name of the personal directory,
  1090.     parameter 142     the drive and path where the personal files and personal
  1091.                       directory are stored, 
  1092.     parameter 144     the protocol that must be used downloading,
  1093.     parameter 147     whether the files downloaded are to be concatenated, and
  1094.     parameter 188     the CONFIG utility to check the structure of the personal
  1095.                       directory to make sure it is in the properly format.
  1096.  
  1097.     Parameter 147 and parameter  187 require some explanation of how  they might
  1098.     be used.  Limiting the caller to a required protocol to use is not something
  1099.     one  would  generally  do.    But,   for  special  purpose  downloads,  like
  1100.     downloading to a printer, one might want to require ASCII, for example.  Or,
  1101.     if  all  callers  are to  use  the  same communications  package  or  only a
  1102.     particular protocol is efficient, you can specify what callers must use.
  1103.  
  1104.     Concatenating  files  means  that  when  multiple  files  are specified  for
  1105.     downloading,  the files are sent  continuously in one  stream of data rather
  1106.     than individually as  separate files.  In  effect, the files  are physically
  1107.     combined  at the  time  of  downloading.   All  messages  between files  are
  1108.     suppressed -  the only  messages that appear  to the  caller are  those that
  1109.     normally occur when  the first file transfer  starts and when the  last file
  1110.     transfer  ends.    Concatenation  is  currently  supported  only  for  ASCII
  1111.     downloads.
  1112.       
  1113.     An  example  of a  situation that  might use  this feature  of RBBS-PC  is a
  1114.     business  that generates short  reports for clients.   Their clients want to
  1115.     call in remotely to get time-critical reports  and print them right in their
  1116.     office on pre-formatted  paper.  Each report  is a separate file  on RBBS-PC
  1117.     with all the necessary printer commands already included in each file.
  1118.  
  1119.     A  SYSOP might set  up RBBS-PC such  that the main  menu was restructured to
  1120.     make  the P)ersonal files  function be P)rint  reports to reflect  the  more
  1121.     specialized nature  of the  board.   Callers to  this board  would call  in,
  1122.     identify themselves,  and select P)rint reports from the main menu.  Callers
  1123.     could use L)ist to see what is available if they are looking for some report
  1124.     in particular;  just select all new reports; or ask for  a particular report
  1125.     if they must have it immediately.
  1126.  
  1127.     In the last two cases, RBBS-PC would notify the caller to set  up to receive
  1128.     and  press  [ENTER] when  ready.   The  pre-formatted reports  with embedded
  1129.     printer  control  sequences  would  stream out  onto  the  paper  (including
  1130.     formatting like bold  or underline) positioning  the text  to fit in  boxes.
  1131.     The paper is automatically advanced as needed.  When done, RBBS-PC beeps the
  1132.     user,  who  then  turns  the  "save  to  printer"  feature  off  of whatever
  1133.     communications package is being used.
  1134.  
  1135.     To set up this application, the personal file options would be configured to
  1136.     use the caller's id (e.g. account number).  The files and directory would be
  1137.     put in  a special subdirectory  not shared with  anything else.   The CONFIG
  1138.     parameters  would be set  to specify that  caller's must use  ASCII ("A") as
  1139.     their protocol and that multi-file downloads will be concatenated.
  1140.  
  1141.     Another example is that  of an electronic job placement service  that wanted
  1142.     to limit non-subscribers  to a security level  5 with 10 minutes.   However,
  1143.     they also  want non-subscribes to  be able to  download a file  of potential
  1144.  
  1145.     RBBS-PC CPC17-2A                                                Page 168
  1146.  
  1147.     employment opportunities that  may take more than 10 minutes.  The following
  1148.     entries would be put into PRIV.DIR:
  1149.  
  1150.     JOBSFORU.ARC   282888  07-14-87  List of job opportunities you might want 5
  1151.               /|\                                                           /|\
  1152.               12                                                            74
  1153.      
  1154.     Each record is  padded with blanks  so that 29  blank characters follow  the
  1155.     security  level,  followed  by an  '*'.     The  '*'  is not  shown  in this
  1156.     documentation since it is in a column too far to the right.
  1157.  
  1158.     RBBS-PC CPC17-2A                                                Page 169
  1159.  
  1160.     13.8  Automatically Checking & Converting Uploaded Files
  1161.     --------------------------------------------------------
  1162.  
  1163.     Verifying the Integrity of a File
  1164.     ---------------------------------
  1165.     RBBS-PC's on-going commitment  to providing  the SYSOP with  the ability  to
  1166.     protect both himself and his callers is reflected in precisely this  kind of
  1167.     feature.   When  a file  is uploaded,  RBBS-PC will look  for a  file called
  1168.     T<ext>.BAT (where <ext>  is the characters that make up the extension of the
  1169.     uploaded file).  RBBS-PC looks for this file on the drive and path specified
  1170.     in CONFIG parameter 105.  If this file exits, RBBS-PC will SHELL to either:
  1171.  
  1172.          a.)  the program specified in the file (if it only has one line) or
  1173.          b.)  to the .BAT file itself.
  1174.  
  1175.     In this way  a SYSOP may install whatever processing is desired after a file
  1176.     has been uploaded.  
  1177.  
  1178.     If the BAT file contains  exactly 1 line, RBBS-PC will shell to the contents
  1179.     of the bat file, passing on the command line the two parameters:
  1180.  
  1181.          a.)  the name of the file upload (first) and
  1182.          b.)  the name of the file to write the results to (second)
  1183.  
  1184.     If the BAT file  contains more than one line, RBBS-PC will  SHELL to the BAT
  1185.     file itself,  passing 
  1186.  
  1187.          a.)  the name of the file upload for "[1]" and
  1188.          b.)  the name of the file to write the results to for "[2]"
  1189.  
  1190.     as the first and second parameters, respectively.
  1191.  
  1192.     RBBS-PC  will consider  the upload  to have failed  and delete  the uploaded
  1193.     file, if  the file  to which  the results  are to  be written  has a  length
  1194.     greater than 2 bytes.  The BAT file should either 
  1195.  
  1196.          a.) not write a result file or
  1197.          b.) leave an empty one if the upload is okay.
  1198.  
  1199.     If the  file that was uploaded is not  okay, the external application should
  1200.     write out some error message more than 2 bytes long.
  1201.  
  1202.     A typical use for this feature of RBBS-PC  is to test the compression of the
  1203.     uploaded file and pipe the results to a text scanner that looks for an error
  1204.     string  and redirects  the output  to a file  if an  error is  found.    For
  1205.     example  if files  that are  uploaded  with the  extension .ZIP  were  to be
  1206.     tested, a SYSOP might create the file TZIP.BAT
  1207.  
  1208.              PKUNZIP -T [1] | FGREP "error in a" > [2]
  1209.  
  1210.     An alternative implementation is:
  1211.  
  1212.              PKUNZIP -T %1
  1213.              IF ERRORLEVEL 1 ECHO BAD UPLOAD > %2
  1214.              SETERROR 0
  1215.  
  1216.     Under versions  of QuickBASIC prior  to 4.5,  programs that reset  the error
  1217.     level cause  illegal function call 5 upon return  from the SHELL.  Therefore
  1218.     it is necessary to run  a utility to reset the error level back  to 0 before
  1219.     going back to RBBS-PC.  This is what the SETERROR.EXE file does.
  1220.  
  1221.     RBBS-PC CPC17-2A                                                Page 170
  1222.  
  1223.  
  1224.     The recommended procedure  is to  use PKUNZIP, check  errorlevel, and  reset
  1225.     error  level  to 0.   PKUNZIP  outs somehat  variable string  when different
  1226.     errors occur, making a filter based on text more difficult to implement.
  1227.  
  1228.     Converting Uploads
  1229.     ------------------ 
  1230.     RBBS-PC can be configured  by the SYSOP to cause uploads  with extension <u-
  1231.     ext> to  be converted  to the default  extension <d-ext>.   To do  this, the
  1232.     SYSOP  must  put a  file  named C<u-ext><d-ext>.BAT  on  the drive  and path
  1233.     specified in CONFIG parameter 105.  If the file exist RBBS will SHELL to it.
  1234.  
  1235.     Suppose the  SYSOP has  ZIP as  the default  extension and  wants all  files
  1236.     uploaded with the ARC extension to be converted to ZIP formats.
  1237.  
  1238.     1.  A file CARCZIP.BAT would have to exist in the area specified by 
  1239.         CONFIG parameter 105.
  1240.  
  1241.     2.  The file CARCZIP.BAT would have exist and drive the conversion.
  1242.  
  1243.     Similarly if the SYSOP also wanted all files uploaded with the PAK extension
  1244.     to be converted to ZIP formats:
  1245.  
  1246.     1.  A file CPAKZIP.BAT would have to exist in the area specified by 
  1247.         CONFIG parameter 105.
  1248.  
  1249.     2.  The file CPAKZIP.BAT would have to exist and drive the conversion.
  1250.  
  1251.     RBBS-PC CPC17-2A                                                Page 171
  1252.  
  1253.     14.  SETTING UP ".BAT" FILES FOR RBBS-PC
  1254.     ----------------------------------------
  1255.     Many SYSOPs have  set up batch files to invoke RBBS-PC automatically and  to
  1256.     re-invoke  RBBS-PC should there be a  power outage.  These files range  from
  1257.     the simple  to the sublime  in terms of  complexity.  In  a multiple RBBS-PC
  1258.     environment,  these .BAT files CANNOT  BE SHARED.  If  you are going to exit
  1259.     RBBS-PC and transfer control  to DOS remotely (either via the SYSOP function
  1260.     7 or  via "doors"), it is necessary that:
  1261.  
  1262.          1.  RBBS-PC be executed from a batch file.
  1263.          2.  The batch file which is executing RBBS-PC contain an "IF" statement
  1264.     that checks for  the existence of the  batch file which  RBBS-PC dynamically
  1265.     builds when either "doors" or SYSOP function 7 is invoked.
  1266.          3.  Within  the "IF" statement,  the logic exists  such that the  batch
  1267.     file  dynamically  built  by RBBS-PC  for  the  "doors"  functions or  SYSOP
  1268.     function 7 will be invoked if it exists.
  1269.  
  1270.     As a very simple example, let us assume that:
  1271.  
  1272.          1.  the batch  file that invokes RBBS-PC is named  A:RBBS.BAT, and that
  1273.     is what was entered for parameter 104 of CONFIG,
  1274.          2.  the name of the batch  file that RBBS-PC will build dynamically for
  1275.     either "doors" or  SYSOP function  7 is  A:RCTTY.BAT, and that  is what  was
  1276.     entered for parameter 103 and
  1277.          3.   the compiled  version of RBBS-PC  is being  executed and  is named
  1278.     RBBS-PC.EXE and is on the default disk drive.
  1279.          4.  you have elected to use the watchdog utility program.
  1280.          5.   COM1  was designated  as  the communication  port  to be  used  by
  1281.     RBBS-PC.
  1282.          6.  the CALLERS file is on drive A.
  1283.  
  1284.     Then  A:RBBS.BAT  (in   a  non-MultiLink  environment)  would   contain  the
  1285.     following:
  1286.  
  1287.          IF EXIST A:RBBSxF1.DEF DEL A:RBBSxF1.DEF
  1288.          IF EXIST A:RCTTY.BAT DEL A:RCTTY.BAT
  1289.          RBBS-PC  x  filename    (see  note  of  values  available for  "x"  and
  1290.     "filename")
  1291.          IF EXIST A:RBBSxF1.DEF GOTO EXIT
  1292.          IF EXIST A:RCTTY.BAT A:RCTTY.BAT
  1293.          A:RBBS.BAT
  1294.          :EXIT
  1295.  
  1296.     NOTE:   When running  RBBS-PC.EXE, RBBS-PC  will check  for the  "x" in  the
  1297.     command line that invoked RBBS-PC.  The "x" on the execute line is extremely
  1298.     important to  the correct operation  of RBBS-PC.   If you  are running in  a
  1299.     local area network environment  then the "x" should be a  number between "1"
  1300.     and "0" or a letter between "A" and "Z". If "x" is omitted from  the command
  1301.     line,  RBBS-PC will look  for a file  named RBBS- PC.DEF.  RBBS-PC uses  the
  1302.     parameter  in the  command line  to  determine  the correct RBBSxPC.DEF file
  1303.     to  use for  its configuration  parameters if  the second  parameter  is not
  1304.     present.   If the second parameter is present,  then RBBS-PC assumes this is
  1305.     the fully qualified file name for the .DEF file that this node should use.
  1306.  
  1307.     RBBS-PC CPC17-2A                                                Page 172
  1308.  
  1309.     15. THE USE OF RBBS-PC "DOORS"
  1310.     ------------------------------
  1311.     The RBBS-PC  "door" concept is that of  allowing a SYSOP to set  up a "door"
  1312.     through which users can exit from RBBS-PC and enter other applications.   In
  1313.     previous versions of  RBBS-PC (i.e. prior to CPC12-3A)  this had been called
  1314.     "windows"  but  because of  the confusion  this  created with  the WINDOWing
  1315.     concepts of other software, it has been re-labeled "doors".
  1316.  
  1317.     15.1 "DOORS" Are Nothing More Than .BAT Files
  1318.     ---------------------------------------------
  1319.     RBBS-PC's  "doors"   are nothing more than .BAT  files that the  SYSOP   has
  1320.     created   to  allow   users  to   exit   from  RBBS-PC   and  enter    other
  1321.     applications (i.e. databases, etc.).   The SYSOP is responsible  for writing
  1322.     the  .BAT  files that users will be  allowed to invoke.  Assuming that RBBS-
  1323.     PC is brought up by  DOS via an AUTOEXEC file that invokes  RBBS.BAT, a door
  1324.     called EDIT exists that  consists of a  .BAT file (EDIT.BAT) which  contains
  1325.     the commands CTTY,  EDLIN, and RBBS.BAT.   In order to exit  RBBS-PC (either
  1326.     for a "door" or  for the remote SYSOP function 7) without  the code that the
  1327.     BASIC compiler generates  for you dropping the remote user,  it is necessary
  1328.     for the compiler that RBBS-PC is compiled under be "patched" as described in
  1329.     Appendix  T  otherwise  the user  will  be  disconnected  upon returning  to
  1330.     RBBS-PC.  Here is pictorially what happens:
  1331.                             DOS
  1332.                              | 
  1333.                           RBBS.BAT <---------------------------------+
  1334.                              |                                       |
  1335.                             \|/                                      | 
  1336.                              +--------->RBBS-PC.EXE                  |
  1337.                                             |                        |
  1338.                                            \|/                       |
  1339.                                           "RUN"                      |
  1340.                                             |                        |
  1341.                              +<-------------ends                     |
  1342.                              |                                       |
  1343.                            RBBS.BAT                                  |
  1344.                              |                                       |
  1345.                             \|/                                      |
  1346.                         RCTTY.BAT (invokes door called "EDIT")       |
  1347.                              |                                       |
  1348.                             \|/                                      |
  1349.                          EDIT.BAT                                    |
  1350.                              |                                       | 
  1351.                              +--------->EDLIN.COM                    |
  1352.                                             |                        |
  1353.                          EDIT.BAT <--------ends                      |
  1354.                              |                                       |
  1355.                             \|/                                      |
  1356.                          RBBS.BAT                                    |
  1357.                              |                                       |
  1358.                             \|/                                      |
  1359.                              +--------->RBBS-PC.EXE                  |
  1360.                                             |                        |
  1361.                                        welcome back from door        |
  1362.                                and RBBS-PC continues-------->|
  1363.  
  1364.     RBBS-PC CPC17-2A                                                Page 173
  1365.  
  1366.     15.2 A Sample .BAT File for a "DOOR"
  1367.     ------------------------------------
  1368.     A sample .BAT file for a program called TEST.EXE that assumes:
  1369.     1.  That you are going to be using COM1.
  1370.     2.  That the program "TEST.EXE" is on the default drive.
  1371.     3.  That the batch file to invoke RBBS-PC is called "RBBS.BAT."
  1372.     4.  The batch file "RBBS.BAT" is on the default drive.
  1373.  
  1374.     15.2.1 Redirect I/O Using the CTTY Method
  1375.     ------------------------------------
  1376.     Would look like this using the CTTY METHOD:
  1377.                  CTTY COM1
  1378.                  TEST.EXE 
  1379.                  CTTY CON
  1380.                  RBBS.BAT
  1381.     The first command, "CTTY  COM1", assigns most  standard input and output  to
  1382.     the communications port number  1.  The second command,  "TEST.EXE", invokes
  1383.     some test program that you write that reads from and writes to the  standard
  1384.     input and  output devices  (i.e. the keyboard  and the  screen).   The third
  1385.     command,  "CTTY CON", reassigns  the standard input  and output  back to the
  1386.     local PC's  keyboard and screen whenever TEST.EXE  ends.  The fourth command
  1387.     simply invokes another  batch file named RBBS.BAT (which  presumably invokes
  1388.     RBBS-PC).
  1389.  
  1390.     15.2.2 Redirect I/O Using the CTTY Method
  1391.     ------------------------------------
  1392.     Would look like this using the REDIRECT I/O METHOD:
  1393.                  COMMAND /C TEST.EXE <COM1 >COM1
  1394.                  RBBS.BAT
  1395.  
  1396.     The first command,  "COMMAND /C  TEST.EXE <COM1 >COM1",  starts a  secondary
  1397.     command processor, loads TEST.EXE and assigns most standard input and output
  1398.     to the  communications port number  1.   "Most" is the  key word here  since
  1399.     PC-DOS does  not have a way of redirecting "STANDARD ERROR" like it does for
  1400.     "STANDARD  IN and  STANDARD  OUT".   To  solve  this  problem STDERR.COM  is
  1401.     included as part of the basic RBBS-PC system.  This program was  provided by
  1402.     Quarterdeck  Systems.   Run  "STDERR.COM"  one  time only  before  you start
  1403.     RBBS-PC.   I suggest  that you include  it in your AUTOEXEC.BAT  file.  This
  1404.     program  works with all versions of PC-DOS 2.0 through 3.2.  A sample "DOOR"
  1405.     might look like this using the DEVICE DRIVER METHOD:
  1406.                  CTTY GATE1
  1407.                  TEST.EXE 
  1408.                  RBBS.BAT
  1409.  
  1410.     The first command, "CTTY GATE1", assigns  most standard input and output  to
  1411.     the device drive named "gateway".  Since it is a device driver it must exist
  1412.     in  your  CONFIG.SYS.   The second  command,  "TEST.EXE", invokes  some test
  1413.     program that you write that reads from  and writes to the standard input and
  1414.     output devices (i.e. the keyboard and the screen).  The third command, "CTTY
  1415.     CON",  reassigns the  standard  input  and output  back  to the  local  PC's
  1416.     keyboard  and  screen whenever  TEST.EXE ends.    The fourth  command simply
  1417.     invokes   another  batch  file  named  RBBS.BAT  (which  presumably  invokes
  1418.     RBBS-PC).
  1419.  
  1420.     RBBS-PC CPC17-2A                                                Page 174
  1421.  
  1422.     15.3 Setting Up and Testing a "DOOR"
  1423.     ------------------------------------
  1424.     To first set up and test a door, DO NOT USE RBBS-PC.  Rather set up with
  1425.  
  1426.     1.   your modem on auto-answer (i.e. it answers the phone)
  1427.     2.   a .BAT file that redirects all input and output to the communications
  1428.          port that you are going to use using the IBM DOS CTTY command.
  1429.     3.   make sure the .BAT file invokes the program that you want to use as 
  1430.          a "door."
  1431.     4.   invoke the .BAT file that you set up in steps 2 and 3.
  1432.     5.   dial up the modem that you set in auto-answer mode in step 1.
  1433.     6.   get your "door" to work in this environment.
  1434.  
  1435.     If you have problems with steps 1  through 6, call your friendly IBM support
  1436.     or the vendor of the software that you want to use as a door and ask them to
  1437.     teach  you  about either  their  software  or  the CTTY  command  and  their
  1438.     software's compatibility with the CTTY command.  
  1439.  
  1440.     AFTER YOU HAVE YOUR DOOR WORKING, to set up a "door" for RBBS-PC, you must
  1441.  
  1442.     1.  list   the  name  of  the door (i.e. the .BAT file which you already    
  1443.     got working and  debugged and are responsible  for setting up) in  MENU5 (or
  1444.     whatever name specified in CONFIG parameter 102 for the text file containing
  1445.     the menu of available "DOOR"s). 
  1446.     2.   indicate that  doors are  available  (via  CONFIG's parameter 101).
  1447.  
  1448.     When a user invokes the D>oor command, RBBS-PC will:
  1449.  
  1450.         1.  List MENU5,
  1451.         2.  Check that the door that the user selects was specified in MENU5,
  1452.         3.  Check that the .BAT file exists (on the default drive),
  1453.         4.  Dynamically create a .BAT file with the name specified
  1454.             by the SYSOP in parameter 103 of CONFIG that:
  1455.                 a.  invokes the .BAT file of the window specified,and
  1456.                 b.  re-invokes RBBS-PC after the user EXITS from the
  1457.                     "door" by invoking the .BAT file that the SYSOP
  1458.                     specified in parameter 104 of CONFIG.
  1459.  
  1460.     The  purpose  of "doors" is to  allow for the "horizontal" growth  of  RBBS-
  1461.     PC.   In  order  to not limit the application of RBBS-PC either to BASIC  or
  1462.     the   current compiler,  "doors" was  chosen as a mechanism  to allow SYSOPs
  1463.     to    make  available other  features  (i.e.   databases,    games,   etc.).
  1464.     Hopefully  with  RBBS-PC as a base,   the limitations on doors will only  be
  1465.     the SYSOP's  resourcefulness  AND IBM'S DISK OPERATING SYSTEM  (see Appendix
  1466.     W)!
  1467.  
  1468.     The  design of  the .BAT file that is to  be used as a "door"   is  critical
  1469.     and  is  the responsibility of the SYSOP.   At  the very minimum  it  should
  1470.     handle  the communication port  I/O.   This can be done in a very  primitive
  1471.     way using the DOS CTTY command as described in section 15.
  1472.  
  1473.     When the file RCTTY.BAT is executed, it executes another batch file with the
  1474.     name of that particular door.  DOS does not return to the RCTTY.BAT.  So, at
  1475.     the end of your doors batch file, you must reinvoke RBBS.BAT. 
  1476.  
  1477.     RBBS-PC CPC17-2A                                                Page 175
  1478.  
  1479.     The way that "doors"  works is to check to see if the door name specified is
  1480.     in MENU5.   If it is in  all capital letters in  the RBBS-PC file MENU5,  it
  1481.     runs the batch file of that name with the extension ".BAT".
  1482.  
  1483.     In general, the program invoked as a "door" has to do is print everything to
  1484.     the communications port and if you wish, echo it to the screen.  The initial
  1485.     part of any "door" should read in the parameters passed to the "door" in the
  1486.     "node" record and establish the communications parameter appropriately.
  1487.  
  1488.     Alternatively,  "DOORS"  can  be invoked  via  a  control  file, see  CONFIG
  1489.     parameter 109.
  1490.  
  1491.     RBBS-PC CPC17-2A                                                Page 176
  1492.  
  1493.     15.4 Invoking "DOOR"s Via The External Control File
  1494.     ---------------------------------------------------
  1495.     In addition to simply invoking "DOOR"s  using the standard approach outlined
  1496.     above, RBBS-PC allows a multiplicity of  "DOOR"s which may require different
  1497.     methods and parameters to be used when  invoking them.  CONFIG parameter 109
  1498.     allows the SYSOP to specify the name of this control file.
  1499.  
  1500.     This approach  allows different  "DOOR"s to  be invoked  in different  ways.
  1501.     Specifically, the  SYSOP  can tailor  the  way  each "DOOR"  is  invoked  as
  1502.     follows:
  1503.  
  1504.     1.  The minimum security level to invoke each "DOOR" may be different.
  1505.  
  1506.     2.  The caller  may be required to answer a  questionnaire before the "DOOR"
  1507.     is invoked.   This is extremely  useful if the  "DOOR" is a database  search
  1508.     program and the questionnaire gathers the necessary search criteria from the
  1509.     caller prior to invoking the "DOOR".
  1510.  
  1511.     3.   The "DOOR"  may be  either SHELLed  to (i.e.  where RBBS-PC remains  in
  1512.     memory and the "DOOR" is simply loaded  in with RBBS-PC) or EXITed to  (i.e.
  1513.     where  RBBS-PC terminates  itself and releases  the memory  it uses  for the
  1514.     "DOOR" to be loaded into).
  1515.  
  1516.     4.   The "DOOR"  may be  invoked via  a "template"  (see  section 21.2)  and
  1517.     information  passed  to the  "DOOR".   "Templates"  are useful  when passing
  1518.     information from  a questionnaire  to a  database search  program.   RBBS-PC
  1519.     normally passes the node ID as the first parameter to a "DOOR".  When  using
  1520.     a "template"  to invoke a "DOOR"  the "template" must  include the parameter
  1521.     "[NODE]", if the node ID is to be passed to the "DOOR".
  1522.  
  1523.     5.   A file  may be  specified for  RBBS-PC to  display to  the caller  upon
  1524.     returning from a  "DOOR".  This file  may be created by the  "DOOR" that was
  1525.     invoked (i.e. the output of the  database search and retrieval) or simply  a
  1526.     text file that the SYSOP created.
  1527.  
  1528.     6.  Additionally, when returning from each "DOOR" the SYSOP can elect to ask
  1529.     the caller to re-enter their password as an added security verification.
  1530.  
  1531.     7.  Finally,  the control file approach to invoking "DOOR"s allows the SYSOP
  1532.     to specify  the maximum amount  of elapsed time that  a caller can  spend in
  1533.     each "DOOR".  If amount of time remaining that the user has on the system is
  1534.     greater than the  amount of time allowed  in the "DOOR", the smaller  of the
  1535.     two time's is used.
  1536.  
  1537.     As  with all  features, the control  file approach  to invoking a  "DOOR" is
  1538.     optional.   However, even if it  is used a "DOOR"  can only be  invoked by a
  1539.     caller if a .BAT file exists (see section 15.3).
  1540.  
  1541.     RBBS-PC CPC17-2A                                                Page 177
  1542.  
  1543.     15.5 EXITing or SHELLing to "DOOR"s
  1544.     -----------------------------------
  1545.     There are two ways to execute other programs from RBBS-PC:
  1546.  
  1547.        1.  EXITing RBBS-PC and invoking the other program via a .BAT file that
  1548.            RBBS-PC builds dynamically, or
  1549.  
  1550.        2.  SHELLing to the other program while RBBS-PC remains in memory.
  1551.  
  1552.     EXITing RBBS-PC  allows other BASIC programs to  be run as external programs
  1553.     to RBBS-PC,  conserves memory, and  allows all of  RBBS-PC's features to  be
  1554.     active in computers with only 320K of  memory.  The "price" that is paid  is
  1555.     that upon returning from  the externally called program RBBS-PC's  .EXE file
  1556.     must be  reloaded into  memory.   Unless a  control file  is used  to invoke
  1557.     "DOOR"s, RBBS-PC always EXITs to "DOOR"s.
  1558.  
  1559.     SHELLing prohibits  other BASIC programs to  be run as  external programs to
  1560.     RBBS-PC, consumes memory  because RBBS-PC remains  in memory when the  other
  1561.     program is running, and requires 386K of memory (under DOS 3.2)  to activate
  1562.     all  of RBBS-PC's features.   However, SHELLing  does eliminate  the need to
  1563.     reload the RBBS-PC.EXE file each time.  
  1564.  
  1565.     RBBS-PC CPC17-2A                                                Page 178
  1566.  
  1567.     15.6 Resetting The User's Record Via a "DOOR"
  1568.     ----------------------------------------------
  1569.     WARNING -- this is an extremely powerful feature!  It opens up everything in
  1570.     the user record to  modification by the "DOOR".   The "door" must  also have
  1571.     knowledge  of where  fields are  in the user  record and  may cease  to work
  1572.     properly when the  user record changes its format.  The main application for
  1573.     this  is feature within RBBS-PC if for  "DOOR"s that maintain certain SYSOP-
  1574.     defined fields.
  1575.  
  1576.     For a "DOOR" to reset  any part of the user record  all a door has to do  is
  1577.     include in DOUTx.DEF file, where x is node number, a line in the format
  1578.  
  1579.                         UR(<start>:<end>),<value>
  1580.  
  1581.     where:
  1582.            <start> is the beginning byte in user record,
  1583.            <end> is the number of bytes to revise, and
  1584.            <value>  is  what goes  into  the  specified position  in  the user's
  1585.     record.
  1586.  
  1587.      For example,
  1588.  
  1589.                     UR(63:24),"City,State"
  1590.  
  1591.     would update the  city/state field with  the value "City,State", setting  24
  1592.     bytes in user  record to that  value (blank fill  to right), beginning  with
  1593.     character position  63.    The "UR"  request only works  for data  stored in
  1594.     character format in the user record.   RBBS-PC supports a  second request in
  1595.     the form
  1596.  
  1597.                      SL,<sign><value>
  1598.  
  1599.     where "SL"  stands for security  level.    <sign> can  be nothing, plus,  or
  1600.     minus, and  means respectively  to set the  security level to  the following
  1601.     value, or  to raise  or lower  the security  by the  amount specified.   For
  1602.     example, "SL,6" requests that the security be set to 6 whereas "SL,-2" means
  1603.     to lower the security by 2.
  1604.  
  1605.     RBBS-PC CPC17-2A                                                Page 179
  1606.  
  1607.     15.7 A Summary of "DOOR"s
  1608.     -------------------------
  1609.     Finally, if the  preceding discussion of  "doors" is  a complete mystery  to
  1610.     you, contact a SYSOP of an RBBS-PC that is using "doors" and ask for help.  
  1611.     TRADEWARS is one  of the more professional "doors".  It  was written by John
  1612.     Morris, who  can be reached via his RBBS-PC  data number (702) 673-3387.  If
  1613.     you call people  to take up their  time learning about "doors"  for personal
  1614.     gain (i.e. you  are a consultant  or some company's  employee being paid  to
  1615.     write a  "door") have the  courtesy to tell them.   The "user  helping user"
  1616.     concept does NOT  imply that anyone should  be taken advantage.   Anyone who
  1617.     has acquired specialized knowledge has the right to be remunerated for their
  1618.     efforts if their  knowledge is being used to further commercial purposes and
  1619.     they request it.    
  1620.  
  1621.     The  "door"  concept  stretches  IBM's DOS'  capabilities  and  requires  an
  1622.     knowledge of how both DOS, the DOS CTTY command,  and .BAT files work. 
  1623.  
  1624.     RBBS-PC CPC17-2A                                                Page 180
  1625.  
  1626.     16.  THE SECURITY FEATURES OF RBBS-PC
  1627.     -------------------------------------
  1628.     RBBS-PC  has always  been an open  system designed  for public use.  A SYSOP
  1629.     should   always  ASSUME  that EVERY  FILE ON THE  PC running RBBS-PC  CAN BE
  1630.     DOWNLOADED   AND/OR     DESTROYED.     However,     RBBS-PC  has   extensive
  1631.     safeguards   that    systematically   enhance  security  and privacy.    For
  1632.     example,  RBBS-PC  has  the  logic  within  it's  code  to  prohibit  anyone
  1633.     (including the SYSOP) from downloading the RBBS-PC "system" files  described
  1634.     in section 5.1.   RBBS-PC can still be run as  a  wide-open system,  but the
  1635.     SYSOP has many additional options  to   restrain  access.   These   security
  1636.     options make RBBS-PC much more suitable for  private  and business use.
  1637.  
  1638.     RBBS-PC's security is controlled by three things:
  1639.  
  1640.          1. the system configuration file (RBBS-PC.DEF),
  1641.          2. the  two external security files for
  1642.                a. passwords (PASSWRDS), and
  1643.                b. file downloads (FILESEC), and
  1644.          3. the users file (USERS) in which each user has an assigned 
  1645.             security level.
  1646.  
  1647.     The   users  file is controlled by the  SYSOP  user  maintenance  function 5
  1648.     as described  in section 17.  To change a  specific users security level you
  1649.     select the M>odify option and then the S>ecurity option.  This allows you to
  1650.     set   the security level for  a user.   Users cannot set their  own security
  1651.     levels.   Section 16.3  describes how  to implement  special passwords  that
  1652.     provide special  privileges to  the groups that  issue them.   Section  16.4
  1653.     describes how  specific files, groups of  files, or even  whole disk volumes
  1654.     can have download security levels associated with them.
  1655.  
  1656.     RBBS-PC CPC17-2A                                                Page 181
  1657.  
  1658.     16.1 RBBS-PC's Security Features
  1659.     --------------------------------
  1660.     Each user has  an assigned security  level, permitting over 65,000  possible
  1661.     security   levels.    Each   command in  RBBS-PC also  has a  security level
  1662.     assigned   to  it.   Security assignments  are controlled by the SYSOP.   To
  1663.     use a  command,  the   caller's  security level must be at  least as high as
  1664.     the command's security  level.
  1665.  
  1666.     The  SYSOP can assign a file or group of files both a security level  and  a
  1667.     password.   To   download a file,  a caller must have a  security level   at
  1668.     least as high as the file's and be able  to give the file's password (if one
  1669.     is present).     All users  must pass  these   security   tests,   including
  1670.     anyone  with  SYSOP privileges.
  1671.  
  1672.     Messages  can  now  be  assigned a password by  their   creator.  Then  only
  1673.     persons who are able to give that password can read  or   kill the message. 
  1674.     Messages  with password  protection will show  <PROTECTED>  when   scanned. 
  1675.     Callers have no way of distinguishing messages to  private  individuals  and
  1676.     to groups except by how they are addressed.   Persons with  SYSOP privileges
  1677.     can read all messages.   Section 16.2's description of sending  a message to
  1678.     an AUTHORS  SIG as an addressee with the password of AUTHORONLY shows how to
  1679.     send a message to a special group.
  1680.  
  1681.     Security  violations  are  logged  to   the  CALLERS  file.   These  include
  1682.     attempting  to  use functions without sufficient   security  clearance,  and
  1683.     failure to give required passwords.
  1684.  
  1685.     RBBS-PC's default configuration is that of an "open" system.
  1686.  
  1687.     RBBS-PC's security system provides the SYSOP  with several choices on how to
  1688.     run RBBS-PC. The chief ones are as follows:
  1689.  
  1690.     1.  Change the bulletin board from an open system  available to all callers,
  1691.     to  a pre-registered system available only to specified users.   To  support
  1692.     this option,  there is  a function in  the SYSOPs user maintenance option  5
  1693.     to ADD users.
  1694.  
  1695.     2.  A SYSOP can set  up different "classes" of users by  assigning different
  1696.     security  levels to different users.   Concurrently the SYSOP would have  to
  1697.       assign  different  security levels  to different commands.    For  example
  1698.     new  callers  might be permitted only to  leave a comment,  read  bulletins,
  1699.     and   list  files   that  can be downloaded.  Or there might  be a group  of
  1700.     files   assigned  a security level that  only members of a  special interest
  1701.     group can  download.
  1702.  
  1703.     3.  The  SYSOP   can  segregate the functions of the   bulletin  board  into
  1704.     different  groups based on  a password.   A specific file or group of  files
  1705.     can  be  downloadable  only to those who  knew   the  password.   Similarly,
  1706.     messages  can be  made open to everyone knowing the password but  closed  to
  1707.     everyone else.  This way there can  be semi-private portions of the bulletin
  1708.     board.
  1709.  
  1710.     RBBS-PC CPC17-2A                                                Page 182
  1711.  
  1712.     16.2 Examples of Uses for RBBS-PC's Security System
  1713.     ---------------------------------------------------
  1714.     Some examples of  how a SYSOP can  tailor RBBS-PC using RBBS-PC's  extensive
  1715.     security features follow.
  1716.      
  1717.     SPECIAL INTEREST GROUPS --   A special interest group (SIG) in a users group
  1718.     wishes  to  run   a RBBS-PC for both the general public and  its   own  use.
  1719.     An  example  would be an  authors SIG for  persons interested in  publishing
  1720.     books  and  articles  or developing commercial software.   A definite   need
  1721.     would  exist to be able  to address messages to everyone in the  SIG without
  1722.     making   them   open   to   every  caller.    The  SIG  would establish  the
  1723.     convention   to   password  protect general  SIG messages with  the password
  1724.     AUTHORONLY,  and to  address  them to AUTHORS SIG.
  1725.  
  1726.     Another example would  be a bulletin   board   devoted   to the exchange  of
  1727.     software.    Allowing  persons to use  the message   subsystem   would  only
  1728.     interfere with  the primary purpose of  the  bulletin  board.  Therefore the
  1729.     SYSOP removes from the menu the functions for leaving  and reading messages.
  1730.      To prevent a  person from using the  functions to leave  or read a  message
  1731.     (even  though  they are not displayed),  the SYSOP assigns these functions a
  1732.     security level higher  than a person who logs on normally would be assigned.
  1733.  
  1734.  
  1735.     Another example  of using RBBS-PC's  security system would  be to set  up an
  1736.     agreed upon temporary  password such that when  a user logs onto  the system
  1737.     they  can issue the password  and get longer than normally  allowed.  If the
  1738.     time for  normal users  is 30  minutes, the SYSOP  can set  up the   special
  1739.     password  SOFTEXCHANGE,  with  a  maximum time on  of  150  minutes  instead
  1740.     of the normal 30.   By shifting over to this special password after  logging
  1741.     in, members can get extra time if they need it. 
  1742.  
  1743.     SOFTWARE SUPPORT --  An author of  a freeware program offers RBBS-PC support
  1744.     to  all  persons   who register their copies and  send a  contribution   of,
  1745.     say,  $35 per copy.   The  registered user can get  answers for problems and
  1746.     download  free  updates  and  sample applications.   The author wants anyone
  1747.     to be able  to  call just to find out about the service.   New callers get a
  1748.     security level  of  2  automatically assigned to them.   This allows them to
  1749.     use   only  the   message subsystem.     The  file subsystem  is assigned  a
  1750.     security level of  7.   Contributors  are added by the SYSOP with a security
  1751.     level  of 7  and a    pre-assigned password.   Except  for  SYSOP functions,
  1752.     registered users have free  reign in the RBBS-PC.
  1753.  
  1754.     CLIENT    SUPPORT   --   A  SYSOP on  a public  RBBS-PC  also works  as    a
  1755.     management  consultant.   She has  several associates who  work with her  on
  1756.     projects.   She   needs to  be able  to send and  receive messages  from her
  1757.     associates which the  general  public  should   not see.   So they agree  on
  1758.     a  message  password   NOTPUBLIC. To support her different clients  she also
  1759.     needs to leave private  files  for downloading.   To each client she assigns
  1760.     a special  downloading    password.    To restrict downloading to just  that
  1761.     client,  file names are put  in  the file security file with the appropriate
  1762.     password.  Only persons with  the password can then download them.
  1763.  
  1764.     RBBS-PC CPC17-2A                                                Page 183
  1765.  
  1766.     PRIVILEGED  ELECTRONIC MAIL --  A company  uses RBBS-PC to help support  its
  1767.     regional offices.  Only regional vice-presidents  should be able to download
  1768.     certain management reports.    In file security these reports are assigned a
  1769.     high security level of 9, which only managers get.
  1770.  
  1771.     RBBS-PC CPC17-2A                                                Page 184
  1772.  
  1773.     16.3 How to Implement the Password File
  1774.     ---------------------------------------
  1775.     CONFIG allows  the SYSOP to  designate the name  of the file  containing the
  1776.     privileged group passwords  to RBBS-PC.  Since  this file is a  normal ASCII
  1777.     file, the   SYSOP  can   use  any   text editor to  create and  update   the
  1778.     file.  Put  the  information for each password on a single line and separate
  1779.     the fields with   commas.  It is important  to note that EACH record  of the
  1780.     password  must  contain ELEVEN  parameters (i.e.  TEN  commas).    For   the
  1781.     password file, the format is:
  1782.  
  1783.     parm1,parm2,parm3,parm4,parm5,parm6,parm7,,parm8,parm9,parm10,parm11
  1784.  
  1785.     where:
  1786.  
  1787.     parm1  -- password that this line applies to
  1788.     parm2 -- level> security level for password, if any, or if no password,     
  1789.          then security level this line applies to
  1790.     parm3  -- maximum time in minutes for a single session
  1791.     parm4  -- maximum time in minutes per day
  1792.     parm5  -- number of days in the subscription period
  1793.     parm6  -- start time, in format HHMM 24 hour style,parameters apply
  1794.     parm7  -- end time, in format HHMM 24 hour style, parameters apply
  1795.  
  1796.     The start/end time  are limits on all  other parameters:  meaning  that they
  1797.     apply only during the specified times.   Specifying no start/end times means
  1798.     that the rest applies all day.
  1799.  
  1800.     parm8 -- the type of ratio  method to use.  This should be one of the       
  1801.     following:
  1802.                 '0' - meaning use the files uploaded to files downloaded ratio
  1803.                 '1' - meaning use the bytes uploaded to bytes downloaded ratio
  1804.                 '2' - meaning use the files per day restriction
  1805.                 '3' - meaning use the bytes per day restriction
  1806.     NOTE:
  1807.     FIRST TIME CALLERS  MUST UPLOAD AT LEAST ONE FILE  (BYTE) BEFORE DOWNLOADING
  1808.     UNLESS THEY ARE:
  1809.              EXEMPT FROM THE RATIO REQUIREMENTS,
  1810.              ARE USING THE DAILY RATIO METHOD, OR
  1811.              AN INITIAL UPLOAD CREDIT HAS BEEN GRANTED.
  1812.     THE INITIAL CREDIT FIELD IS IGNORED FOR METHODS 2 AND 3.
  1813.  
  1814.     parm9  -- the ratio field.  This must  be any number greater than zero where
  1815.     '0' means  this  security level  is  exempt from  a  ratio requirement.    A
  1816.     positive integer,  such as 15,  placed in this  parameter requires that  the
  1817.     caller maintain  a ratio of a least  1 file (or byte) uploaded  for every 15
  1818.     files (or  bytes) downloaded.   The  ratio of  uploads to  downloads can  be
  1819.     cumulative over multiple  days or  it can  be limited to  the current  day's
  1820.     activities of the caller.
  1821.  
  1822.     parm10  -  the initial  credit  field.   This  can be  any  positive integer
  1823.     including zero.   The use of ratio methods 2  and 3 in conjunction with this
  1824.     field  can restrict the number of files (or bytes) that can be downloaded by
  1825.     an individual or group of callers per day.
  1826.  
  1827.     parm11 - the elapsed time (in seconds) that a caller must wait after logging
  1828.     on before either  "doors" or file downloading (either, neither, or both) are
  1829.     permitted to  the caller.   See the description  of CONFIG parameter  155 in
  1830.     section 11.8 for a fuller description of how this RBBS-PC option functions.
  1831.  
  1832.     Here are some examples of how the PASSWRDS file might be used:
  1833.  
  1834.     RBBS-PC CPC17-2A                                                Page 185
  1835.  
  1836.  
  1837.     ,5,50,,,0001,0600,,,            Security level 5 gets 50 session minutes
  1838.     ,5,25,,,,,,,,                   between 00:01 AM and 6 AM, and 25 minutes   
  1839.                                     otherwise.
  1840.  
  1841.     ,7,50,70,730,,,,,,
  1842.  
  1843.     Security level 7 has a subscription period of 2 years and a session limit of
  1844.     50 minutes, and a daily limit of 70 minutes.
  1845.  
  1846.     BIGTIME,6,52,,,,,,,,
  1847.  
  1848.     Temporary password BIGTIME gets 52 minutes per session and a security of 6.
  1849.  
  1850.     EXTEND,5,120,,9999,,,,,,
  1851.  
  1852.     Temporary password  EXTEND gets  120 minutes  for the  current session  (the
  1853.     user's elapsed time  per day would still  remain whatever was set  in CONFIG
  1854.     parameter 8), a temporary security level of 5, and a subscription  period of
  1855.     9,999 days.
  1856.  
  1857.     ,7,128,256,,,,,,,120
  1858.  
  1859.     Users who log on  with a security level  of 7 are automatically granted  128
  1860.     minutes on  the system  for each  session, 256  minutes total  for each  day
  1861.     (independent  of  what  was  set  in  parameter  8  of  CONFIG),  and  their
  1862.     subscription period remains unchanged from whatever  it was before, but they
  1863.     must wait 120 seconds  before being able to exit  to a "door" or download  a
  1864.     file.
  1865.  
  1866.     SKIPRATIO,170,120,200,90,0600,1200,0,0,,
  1867.  
  1868.     Temporary  password 'SKIPRATIO' grants the caller a security level of 170, a
  1869.     session limit of 120 minutes,  a daily time limit of  200 minutes, a 90  day
  1870.     subscription  period, during  the  hours of  6AM until  noon  with no  ratio
  1871.     limits.
  1872.  
  1873.     ,140,60,60,365,0001,2400,1,10,,
  1874.  
  1875.     Users with a security level 140, have a session limit of 60 minutes, a daily
  1876.     limit of 60 minutes, a one-year subscription, but during any hour of the day
  1877.     they must maintain a ratio of 1 byte uploaded for every 10 bytes downloaded.
  1878.     There  is no  initial upload credit.  Therefore, an  upload must  take place
  1879.     before a download.
  1880.  
  1881.     ,150,70,,90,,,0,15,2,3600
  1882.  
  1883.     Users with a security level of 150, have a session limit of 70 minutes, a 90
  1884.     day subscription,  must maintain  a ratio of  1 file  uploaded for  every 15
  1885.     downloaded.  An initial  credit of 2  files are granted  to all new/existing
  1886.     users.  However, they  can not exit to a  "door" or download a file  for one
  1887.     hour (3,600 seconds).
  1888.  
  1889.     ,165,90,,120,,,0,30,,
  1890.  
  1891.     Users with a security  level of 165, have a  session limit of 90 minutes,  a
  1892.     120 day subscription, must maintain a ratio of 1 file uploaded for every  30
  1893.     downloaded. No initial upload credit is granted.
  1894.  
  1895.     ,170,120,,365,,,2,10,,
  1896.  
  1897.     RBBS-PC CPC17-2A                                                Page 186
  1898.  
  1899.  
  1900.     Users with a  security level of 170 have  a session limit of  120 minutes, a
  1901.     one-year subscription limitations, but can only download 10 files per day.
  1902.  
  1903.     ,200,360,,730,,,3,250000,,
  1904.  
  1905.     Users with a security  level of 200 have a  session limit of 360 minutes,  a
  1906.     two-year subscription, but can only download 250000 bytes per day.
  1907.  
  1908.     If you are using COPY CON  to create this file you "MUST" press  F6 followed
  1909.     by a Ctrl/Z at the end of the last entry prior to pressing carriage return.
  1910.  
  1911.     RBBS-PC CPC17-2A                                                Page 187
  1912.  
  1913.     16.4  Implementing Security for Download Files
  1914.     ----------------------------------------------
  1915.     CONFIG allows  the SYSOP to  designate the name  of the file  containing the
  1916.     passwords and  security levels that  can be  used to  restrict downloads  of
  1917.     specific files, volumes, or files names meeting certain "wildcard" criteria.
  1918.     This file contains file names with download restrictions in the format:
  1919.  
  1920.     <filename>, <security level>,<password>
  1921.  
  1922.     Note:    Each line is a record and ends with carriage-return line-feed.  The
  1923.     only optional field is  the password field for a filename.   By leaving  the
  1924.     password  field   empty,  no password is assigned to  a  file.   The  commas
  1925.     between  the fields are  necessary.  YOU MUST HAVE TWO COMMAS ON  EACH  LINE
  1926.     even if you do not have a password associated with the file.
  1927.     Some examples would be:
  1928.  
  1929.        COMMAND.COM, 10,DOS
  1930.        PAYROLL.DAT, 99,BANKRUPT
  1931.        CALLGIRL.SEX,,ILLEGAL
  1932.        \FINANCE\STOCKS,100,
  1933.  
  1934.     The  file COMMAND.COM could not be downloaded  unless a user had a  security
  1935.     level equal to or greater than 10 AND could supply the password  "DOS".  The
  1936.     file PAYROLL.DAT could  not be downloaded unless a user had a security level
  1937.     equal to or greater than 99 AND  could supply the password "BANKRUPT".   Any
  1938.     user   could  download  the  file CALLGIRL.SEX  if  they  could  supply  the
  1939.     password  "ILLEGAL".   Any user with a security level of 100 or higher could
  1940.     download   the file STOCKS in the DOS subdirectory FINANCE without supplying
  1941.     any password.
  1942.  
  1943.     Additionally  "wild-card"  characters and drive designators can be used   to
  1944.     protect or restrict certain classes of files (by extension, by  drive, etc.)
  1945.     from being downloaded.
  1946.  
  1947.     Some examples would be:
  1948.  
  1949.        A:*.*,8,
  1950.        E:*.SEC,2,PW1
  1951.        A*.M*,0,GX3
  1952.        XY?X.*,9,3XG
  1953.  
  1954.     All files on drive A would require the users to have a security  level of  8
  1955.     in   order for a user to download them.   Any user who wanted to download  a
  1956.     file  whose extension was ".SEC" and was found to be on drive  E would  have
  1957.     to  not  only  have   a security level of at least 2 but to  also  give  the
  1958.     password  PW1.    The third entry above would require a user who  wanted  to
  1959.     download  any  file on any drive with a  prefix that began with "A"  and  an
  1960.     extension that began with "M" to have a security level of at least 0  and to
  1961.     enter the password GX3.    Finally,  the last entry above would require  any
  1962.     user  who  wanted to download any file  on any drive whose four-letter  name
  1963.     began with "XY" and whose last letter was "X" with any extension to have   a
  1964.     security level of at least 9 and enter the password 3XG.
  1965.  
  1966.     The  wildcards  "*" and  "?"  operate just  like  they do  in  DOS  with one
  1967.     exception.  The "?" requires a character.  In DOS the name "HAPPY" satisfies
  1968.     the file specification "HAPPY?" but it does not in RBBS-PC.
  1969.  
  1970.     To  get  exceptions to  the general rule,  just put  the  exceptions  first.
  1971.      RBBS-PC's  file security search stops with the first applicable entry  that
  1972.     it  encounters.   For  example, 
  1973.  
  1974.     RBBS-PC CPC17-2A                                                Page 188
  1975.  
  1976.  
  1977.     1.  if you want all files on the B  drive  to require the user to have a 
  1978.         security level of at least 3,
  1979.  
  1980.     2.  except that files on  the B drive with the extension ".SEC" would
  1981.         require the user to have a security level of at least 6,  and,
  1982.  
  1983.     3.  regardless of the disk drive that they were on, any file beginning
  1984.         with "MES" with an extension of ".SEC" would require the user to have
  1985.         a security level of at least 12 
  1986.  
  1987.     you would enter the following into the file security file
  1988.  
  1989.        MES*.SEC,12,
  1990.        B:*.SEC,6,
  1991.        B:*.*,3
  1992.  
  1993.     Special Note:RBBS-PC is  hard coded so that there are some files that nobody
  1994.     can   download --  not even  the SYSOP.     These are  RBBS-PC.DEF,   users,
  1995.     messages, callers, group password, comments,   the file security, and backup
  1996.     files.  Similarly the  batch  files  that control RBBS-PC and let the caller
  1997.     exit to DOS 2 can not be downloaded.    The default security file   provided
  1998.     with RBBS-PC is empty. 
  1999.  
  2000.     RBBS-PC CPC17-2A                                                Page 189
  2001.  
  2002.     16.5  Implementing Security for RBBS-PC Commands
  2003.     ------------------------------------------------
  2004.     RBBS-PC allows each  command to be assigned it's own security level.  A user
  2005.     who wishes to invoke an RBBS-PC command must have at least the same security
  2006.     level  as the  command.   Let's  assume that  a SYSOP  wants  to set  up the
  2007.     following classes of users:
  2008.  
  2009.       Classification of Users                        Security Level
  2010.  
  2011.     "Locked Out" Users                                     0
  2012.     New Users (first time)                                 1
  2013.     Normal Users                                           2
  2014.     Users who can "view" a Conference                      3
  2015.     Users who can enter Messages                           4
  2016.     Users who can download files                           5
  2017.     Users who can upload files                             6
  2018.     Users who can Join a Conference                        7
  2019.     Users who can do some SYSOP commands (Jr. SYSOP's)     8
  2020.     Users who can enter a "door"                           9
  2021.     Users who can enter all SYSOP commands  (Co-SYSOP's)  10
  2022.  
  2023.     The following table illustrates one method of assigning each RBBS-PC command
  2024.     it's own security level:
  2025.                                          Security Level
  2026.              Subsystem/Command              Assigned to Command
  2027.  
  2028.      Messages Subsystem
  2029.         A>nswer questionnaire............... 4
  2030.         B>ulletins.......................... 1
  2031.         C>omments........................... 1
  2032.         D>oor subsystem..................... 9
  2033.         E>enter message..................... 4
  2034.         F>iles system....................... 1
  2035.         I>nitial welcome.................... 1
  2036.         J>oin a conference.................. 7
  2037.         K>ill messages...................... 4
  2038.         O>perator page...................... 1
  2039.         P>ersonal mail...................... 2
  2040.         R>ead messages...................... 2
  2041.         S>can messages...................... 1
  2042.         T>opic of messages.................. 1
  2043.         U>tilities (more)................... 1
  2044.         V>iew conference mail............... 3
  2045.         W>ho's on other nodes................3
  2046.         @>Library Sub-System.................1
  2047.      Files Subsystem
  2048.         D>ownload........................... 5
  2049.         G>oodbye............................ 0
  2050.         L>ist file directories.............. 4
  2051.         N>ew files.......................... 5
  2052.         P>ersonal downloads................. 5
  2053.         S>earch directories for string ..... 1 
  2054.         U>pload a file...................... 1
  2055.         V>erbose listing of ARC file........ 1
  2056.      Utilities Subsystem
  2057.         B>aud rate.......................... 1
  2058.         C>lock (time of day)................ 1
  2059.         E>cho selection..................... 1
  2060.         F>ile transfer protocol............. 1
  2061.         G>raphics........................... 1
  2062.  
  2063.     RBBS-PC CPC17-2A                                                Page 190
  2064.  
  2065.         L>ength of page..................... 1
  2066.         M>essage Margin..................... 1
  2067.         P>assword change.................... 1
  2068.         R>eview preferences................. 0
  2069.         S>tatistics of system............... 1
  2070.         T>oggle (line feeds, etc.).......... 1
  2071.         U>serlog............................ 2
  2072.      Library Subsystem
  2073.         A>rchive a Library disk..............5
  2074.         C>hange a Library disk...............5
  2075.         D>ownload........................... 5
  2076.         G>oodbye............................ 0
  2077.         L>ist file directories.............. 4
  2078.         S>earch directories for string ..... 1 
  2079.         V>erbose listing of ARC file........ 1
  2080.      GLOBAL commands
  2081.         ?>What can be done.................. 1
  2082.         H>elp with a command................ 1
  2083.         Q>uit to another subsystem or exit.. 1
  2084.         X>Expert/novice toggle.............. 1
  2085.      SYSOP Subsystem
  2086.         1>List comments..................... 8
  2087.         2>List callers log..................10
  2088.         3>Recover a Message................. 8
  2089.         4>Erase comments.................... 9
  2090.         5>USERS maintenance.................10
  2091.         6>Toggle page bell.................. 8
  2092.         7>Exit to DOS 2.x or above.......... 9
  2093.  
  2094.     RBBS-PC CPC17-2A                                                Page 191
  2095.  
  2096.     16.6  Beware of the "Trojan Horse!"
  2097.     -----------------------------------
  2098.     Despite RBBS-PC's security always remember that you should always assume:
  2099.  
  2100.            "EVERY FILE ON THE PC RUNNING RBBS-PC CAN
  2101.            BE DOWNLOADED, MODIFIED, AND/OR DESTROYED!"
  2102.  
  2103.     RBBS-PC's security system appears to be  so fool-proof that some individuals
  2104.     have resorted  to  uploading programs  that  appear  to do  one  thing,  but
  2105.     actually do something  else.  These  "trojan horse" programs search  all the
  2106.     disks that are connected  to the PC that the program is  running on for such
  2107.     RBBS-PC files as  RBBS-PC.DEF or USERS.  The program then copies these files
  2108.     to an innocuously  named file that can  be downloaded later when  the person
  2109.     who uploaded it logs onto the system  again.  Since RBBS-PC.DEF contains the
  2110.     pseudonym that the SYSOP can use to logon on remotely as the SYSOP, once the
  2111.     user downloads a  copy of it the  user can then log  on as the SYSOP  and do
  2112.     just about anything including exiting to DOS and formatting all the disks on
  2113.     the  system.  Similarly, the USERS file  contains passwords and the security
  2114.     levels  of  everyone  on  your  RBBS-PC  --  some  of  whom  may  have SYSOP
  2115.     privileges.  
  2116.  
  2117.     You can protect yourself against anyone logging on as you, the SYSOP, by not
  2118.     allowing anyone to logon as the SYSOP remotely.  To do this read section  11
  2119.     regarding  parameter 121.   You  can protect  yourself against  unauthorized
  2120.     access  of the USERS  file by  simply not  allowing any  user to  have SYSOP
  2121.     privileges.
  2122.  
  2123.     Of course there is the "trojan horse" program that doesn't even  bother with
  2124.     the above, but simply destroys all the disk  files on all the disks that are
  2125.     connected to the PC that is running the program.  See the rest of section 22
  2126.     to see how you can protect yourself against such programs.
  2127.  
  2128.     RBBS-PC CPC17-2A                                                Page 192
  2129.  
  2130.     17. SYSOP FUNCTIONS
  2131.     -------------------
  2132.     The SYSOP functions  are not available to the general user.  They consist of
  2133.     numeric commands 1-7 for SYSOPs that sign-on remotely as well as some of the
  2134.     keys on  the keyboard attached  to the PC  that is running  RBBS-PC when the
  2135.     SYSOP signs on "locally" by  pressing the "Esc" key.  When on "locally", the
  2136.     SYSOP  should not use some of  the user functions that  depend on the person
  2137.     invoking them being  remote (i.e. file transfers, changing baud  rate to 450
  2138.     baud, etc.).  To  enter  the  SYSOP mode locally press the ESC key on the PC
  2139.     that  is running  RBBS-PC itself  and  enter   the   special   pseudonym you
  2140.     assigned yourself as  the first  and  last name  in  order to log on  as the
  2141.     primary SYSOP from  a  remote  terminal.
  2142.  
  2143.     17.1 SYSOP Commands Within RBBS-PC
  2144.     ----------------------------------
  2145.     The following operations can then be performed by entering a number  only at
  2146.     the command prompt:
  2147.  
  2148.     1 - Type COMMENTS file.    The contents of the COMMENTS file is  displayed. 
  2149.     This  file can also be inspected using  a TYPE command from DOS.   It  is  a
  2150.     ASCII sequential text file.
  2151.  
  2152.     2 - Type CALLERS file.    A log is maintained of all persons who have called
  2153.     the  system.   This function will list the file showing the  users name  and
  2154.     the  date and  time  signed  on as  well  as the  names  of  the files  they
  2155.     upload/downloads  along with any  security violation or  errors encountered.
  2156.     This  is a random access file of 64-byte records.
  2157.  
  2158.     3 - Resurrect a message.  This function  will return a message that has been
  2159.     killed   to  an   active state.    If message file  has been "packed",   the
  2160.     killed   messages are no longer recoverable.   The function will ask for the
  2161.     message  number of the message to be recovered.
  2162.  
  2163.     4 - Erase the COMMENTS file.  This function will erase the comments file  by
  2164.     killing the file.   Since the file  is opened "APPEND," a  new comments file
  2165.     will be created the next time a user leaves a comment.           
  2166.  
  2167.     5 -  USERS file maintenance.   The users file contains entries for each user
  2168.     registered  with the system.   This function permits the SYSOP to 
  2169.  
  2170.     A)dd -- add a user to the USERS file.
  2171.     L)st -- list the USERS file.
  2172.     P)rt -- print the USERS file on the printer.
  2173.     M)od -- modify a record in the USERS file.
  2174.     S)can - scan each record in the USERS file for a particular string. 
  2175.  
  2176.     In <M>odify mode, limiting editing of the users record in the USERS file can
  2177.     be done.  The following subfunctions are available:
  2178.  
  2179.         D - Delete a user in the USERS file.
  2180.         F - Find a user in the USERS file.
  2181.         M - Return to the option 5 function prompt.
  2182.         N - Give the user a new password.
  2183.         P - Toggle the printer flag to print entries on the printer.
  2184.         Q - Quit and return to the main message prompt.
  2185.         R - Reset the users graphic mode.
  2186.         S - Set the security level of the user.  This can be used to lockout or
  2187.             grant special privileges to the user. 
  2188.         # - locate any record number within the USERS file.
  2189.  
  2190.     RBBS-PC CPC17-2A                                                Page 193
  2191.  
  2192.     In <M>odify mode a record will be displayed followed by a subfunction prompt
  2193.     for action.  To get to a specific record the record number can be entered at
  2194.     the prompt and if valid that record will be displayed.  If the record number
  2195.     is invalid or an  empty c/r is entered then the next record in the file will
  2196.     be displayed.
  2197.  
  2198.     6 -  Toggles the  operator page  bell on/off.   This  overrides the  "office
  2199.     hours" specified in the RBBS-PC.DEF file.
  2200.  
  2201.     7-SYSOP drop to DOS as a remote user.  If  the  SYSOP has logged on remotely
  2202.     and  is running RBBS-PC under  DOS   2.0  or  greater,   this  function will
  2203.     dynamically  setup a batch file to  assign  the   SYSOP terminal as the main
  2204.     console.  It then returns to DOS and if
  2205.             
  2206.            a.  RBBS-PC was invoked via a batch file, and if
  2207.  
  2208.            b.   that  batch  file  checks  for  the  batch  file  which  RBBS-PC
  2209.     dynamically builds for SYSOP function 7, and if
  2210.  
  2211.            c.  the batch file that invokes  RBBS-PC executes the batch file that
  2212.     RBBS-PC dynamically builds for SYSOP function 7, 
  2213.  
  2214.     the  SYSOP will  then see  the  DOS prompt  at the  remote terminal  and can
  2215.     execute whatever  DOS commands or  programs the  CTTY command support.   DOS
  2216.     will look for COMMAND.COM to be  present on the disk drive you  specified in
  2217.     parameter  105.   SYSOP  function  7, unlike  "doors,"  loads in  a  copy of
  2218.     COMMAND.COM to run under the copy that was running RBBS-PC.  Also be sure to
  2219.     read  Appendix  W  and  make  sure   that  you  THOROUGHLY  understands  the
  2220.     limitations that DOS places on you when this option is invoked.
  2221.  
  2222.     Two  areas  of  caution are advised when using SYSOP function  7  under  DOS
  2223.     2.0  or above.     First,   each   SYSOP   should    test what  can be  done
  2224.     remotely.   Software  that reads  and writes directly to  the video BIOS and
  2225.     does   other  things  that   bypass  the  standard   input and output of DOS
  2226.     simply  won't  function  correctly.   Second,  you should be aware that  you
  2227.     are in DOS  and  can return to  RBBS-PC only by issuing the  EXIT  command. 
  2228.     This will return to the  batch file that was built dynamically  by RBBS-PC. 
  2229.     This file  will   then  continue executing  and is designed  to reassign the
  2230.     keyboard   as   the   console and  then   re-invoke RBBS-PC.     If you  get
  2231.     disconnected while in DOS,   your  system will  be locked up.    The console
  2232.     will be  assigned to your   communication  port   and your Hayes  modem will
  2233.     have dropped  the  line   and   will have been set  not to auto-answer.  The
  2234.     only way to re-boot the  system  is a manual power off/on sequence.
  2235.  
  2236.     RBBS-PC CPC17-2A                                                Page 194
  2237.  
  2238.     17.2 SYSOP Use of Function Keys and Numeric Pad
  2239.     -----------------------------------------------
  2240.     The  following  function  keys   (ten keys on the left  side  of  a standard
  2241.     IBM keyboard)  are  designed  to  give the SYSOP special local controls that
  2242.     can   be  actuated   without entering  the SYSOP  mode (using the  ESC entry
  2243.     key).   The  current status  of the  function  keys F3,  F4, F6  and F7  are
  2244.     displayed on line 25.
  2245.  
  2246.     F1 - Return to DOS.   This will terminate a session if a caller is on- line.
  2247.      In a  MultiLink environment  when  running RBBS-PC  out of  .BAT file  that
  2248.     re-invokes itself it is difficult for a SYSOP to get out of RBBS-PC and exit
  2249.     to DOS locally using F1.  To help, RBBS-PC now creates a special file on the
  2250.     same location as the CALLERS file called RBBSxF1.DEF (where "x" is  the node
  2251.     ID -- RBBS6F1.DEF  for node six).   The .BAT file that  would otherwise just
  2252.     re-invoke itself, can  now check for  the existence of  this file and if  it
  2253.     finds it simply terminate itself.
  2254.  
  2255.     F2 - SHELL to  DOS.  RBBS-PC remains resident  but suspended in memory,  the
  2256.     user (if any) remains on-line and the  local SYSOP is in DOS until the  EXIT
  2257.     command is issued (returning to within RBBS-PC just  prior to having pressed
  2258.     the F2 key).  The users session is not terminated -- only suspended.
  2259.  
  2260.     F3 - Printer toggle on/off.  This changes the printer on-line status.   When
  2261.     on-line   the   printer   will   print  each caller's  name   and the   file
  2262.      names   uploaded/downloaded.    It   will   also  print all  error messages
  2263.     except  the   ERROR  68 used to  check that  a file exists.   This  function
  2264.     should match  the  condition   of  the printer.  If the printer  is going to
  2265.     be  left  off,  the  PRINTER  toggle should be set to off.  When the printer
  2266.     toggle is on, "LPT" will be displayed in positions 8-11 of line 25.
  2267.  
  2268.     F4 -  Operator page toggle.    This  changes the status  of "operator annoy"
  2269.     (i.e. allows  the SYSOP  to be  pageable) and   records   the change  in the
  2270.     "node"  record associated with the copy of RBBS-PC associated with  function
  2271.     key 4.   This is set  by  the  CONFIG program parameter 7 which  establishes
  2272.     the SYSOP's  office hours.   This  can be  used to  override and  extend the
  2273.     "office hours" set  up by CONFIG.BAS.   When the "operator annoy"  toggle is
  2274.     on, "ANY" will be displayed in positions 5-7 of line 25.
  2275.  
  2276.     F5 - Forces RBBS-PC to tell the modem to answer the phone.
  2277.  
  2278.     F6- SYSOP  available.   This changes  the status  of operator  available and
  2279.     records  the change in the "node" record associated with the copy of RBBS-PC
  2280.     associated with   function key 6.    This is  useful if during your  "office
  2281.     hours" you temporarily don't wish to be disturbed.  When the SYSOP available
  2282.     toggle is on, "AVL" will be displayed in positions 1-3 of line 25.
  2283.  
  2284.     F7- SYSOP gets control of the system after current user  logs off.  When the
  2285.     "SYSOP next"  toggle is on,  "SYS" will be  displayed in positions  13-15 of
  2286.     line 25.
  2287.  
  2288.     F8 - Allows the SYSOP to grant an on-line  user temporary SYSOP privileges. 
  2289.     This is a toggle on/off switch.
  2290.  
  2291.     F9 - SNOOP toggle.  This changes the SNOOP from  the default value the first
  2292.     time it is pressed and toggles it on/off thereafter. "SNOOP off" clears  the
  2293.     screen  and  turns the cursor off.  It also keeps the download   beeps  from
  2294.     sounding.   The   SNOOP should be left off for normal use to keep the system
  2295.     startup screen from "burning  into" the monitor.   If the SNOOP is left  on,
  2296.     the  monitor should be physically turned off except when  you are  observing
  2297.     RBBS-PC in action.  Leaving the  monitor off will not affect performance  of
  2298.  
  2299.     RBBS-PC CPC17-2A                                                Page 195
  2300.  
  2301.     RBBS-PC.
  2302.  
  2303.     F10- This is the  forced chat switch.    It announces your forced chat   and
  2304.     who you are before  turning the keyboard over to  you and the caller.    The
  2305.     ESC  key is used to exit  Forced chat mode or  to answer an "O>perator page"
  2306.     request.  The F10 key will not function until a user logging on has  reached
  2307.     the Main Menu.
  2308.  
  2309.     END- Logs off and locks out the current user that is on and informs the user
  2310.     that their presence is unacceptable.
  2311.  
  2312.     PgUp - Displays all the information on a current user.  This display is kept
  2313.     in the video page 1 (of the 0-7 pages).  The user activity is always written
  2314.     to page 0  when SNOOP is  active.  The user  sees no interruption  when this
  2315.     occurs  as his  activity  continues unaffected.   If  you have  a monochrome
  2316.     display there is no  video pages 1 through 7 only page 0.  This will display
  2317.     on the monochrome screen the user information.
  2318.  
  2319.     PgDn -  Return to  displaying video  page 0  (i.e. the  page that the  users
  2320.     activity is written to when SNOOP is on).
  2321.  
  2322.     LEFT
  2323.     ARROW - Subtracts one minute to the  user's current session time.  Ctrl/Left
  2324.     Arrow subtracts five minutes to the user's current session time.
  2325.  
  2326.     RIGHT
  2327.     ARROW-Adds one  minute from  the user's  current session  time.   Ctrl/Right
  2328.     Arrow adds five minutes to the user's current session time.
  2329.  
  2330.     UP
  2331.     ARROW-The keyboard "up  arrow" key  (i.e. one that  generates the  character
  2332.     with ASCII value 24 and which is  the "8" key on the standard IBM keyboard's
  2333.     numeric pad that is at the right of the keyboard)  allows the local SYSOP to
  2334.     increment  an on-line  users security  level  by one  each time  that  it is
  2335.     pressed.  Control-up-arrow will increase the security in increments of 5.
  2336.  
  2337.     DOWN
  2338.     ARROW -The keyboard "down arrow" key (i.e. one that generates the  character
  2339.     with ASCII value 25 and which is  the "2" key on the standard IBM keyboard's
  2340.     numeric pad that is at the right of the keyboard)  allows the local SYSOP to
  2341.     decrement  an  on-line users  security level  by  one each  time that  it is
  2342.     pressed.  Control-down-arrow will decrease the security in increments of 5.
  2343.  
  2344.     Some  keyboards  do  not  recognize  the  Control-Up or  Control-Down.    To
  2345.     accommodate this, the Control-PgUP and Control-PgDn can be used instead.
  2346.  
  2347.     The SYSOP  can also enter commands on the command prompt line while a caller
  2348.     is  on-line.   The command entered will cause the system to respond  just as
  2349.     it would if the  caller had entered the command.   This should be used  with
  2350.     caution because it could  confuse a new system user -- users are often timid
  2351.     enough without  knowing that  big brother  is actually  watching them!   Let
  2352.     callers page you and then tell them that you can assist with commands if the
  2353.     get  into trouble.
  2354.  
  2355.     RBBS-PC CPC17-2A                                                Page 196
  2356.  
  2357.     18.  MESSAGE AREAS WITHIN RBBS-PC
  2358.     ---------------------------------
  2359.     RBBS-PC is intended to be an open system.  As such it can have  an unlimited
  2360.     number of message areas  and messages.  At  the very minimum, RBBS-PC  has a
  2361.     single
  2362.  
  2363.          1.)  message area, a file named MESSAGES,
  2364.  
  2365.          2.)  user file, a file named USERS, and
  2366.  
  2367.          3.)  definition file, a file named RBBS-PC.DEF
  2368.  
  2369.     In addition  to this,  additional messages  areas can  be created  as either
  2370.     "conferences" (i.e. areas  that use the  same RBBS-PC.DEF  file as the  main
  2371.     RBBS-PC  message area) or "sub-boards" (i.e.  areas that have their own .DEF
  2372.     file).
  2373.  
  2374.     18.1 "Conferences" and "Sub-boards" -- the Differences
  2375.     ------------------------------------------------------
  2376.     A "conference" or "sub-board" can be:
  2377.  
  2378.          1.) "public" -- any caller can join.
  2379.  
  2380.          2.) "public  with a  separate user  file" --  any caller  can join  and
  2381.     RBBS-PC remembers the last message read by each caller.
  2382.  
  2383.          3.) "semi-public" -- only  callers with specific security levels  equal
  2384.     to or greater than that specified for the conference can join.
  2385.  
  2386.          4.)  "semi-public  with a  separate  user  file" --  only  callers with
  2387.     specific  security levels equal  to or greater  than that  specified for the
  2388.     conference  can join  and RBBS-PC remembers  the last  message read  by each
  2389.     caller.
  2390.  
  2391.          5.) "private with a  separate user file" -- only callers  who have been
  2392.     pre-registered in the  separate user file  for the  conference can join  and
  2393.     RBBS-PC remembers the last message read by each caller.
  2394.  
  2395.     A "sub-board"  is just a conference that also has a configuration definition
  2396.     file (.DEF).    Sub-boards can be public,  private, or semi-private.  Access
  2397.     to a sub-board  is controlled by the configuration parameter  123 which sets
  2398.     the minimum  security  level required  to enter  the "sub-board."   A  "sub-
  2399.     board"  configuration  file  has  the  same   format  as  the  RBBS-PC  main
  2400.     configuration file, and is created and edited using CONFIG.EXE.  This allows
  2401.     a  "sub-board"  to have  its  own  unique welcome  file,  commands, security
  2402.     levels,  menus, help,  bulletins, directories,  and up  and download  areas.
  2403.     "Sub-boards"  can  share  as  much  or  as  little  as  desired  with  other
  2404.     conferences or other "sub-boards" within the same RBBS-PC system.   The only
  2405.     things  a "sub-board" cannot  change are the  primary MESSAGES file  and the
  2406.     communications parameters used by the RBBS-PC it is running under.
  2407.  
  2408.     RBBS-PC CPC17-2A                                                Page 197
  2409.  
  2410.     To  the  caller, a  "sub-board" appears  just  like another  bulletin board,
  2411.     accessed from a bulletin board rather than through a telephone number.
  2412.  
  2413.     Public sub-boards, just like public boards, are those whose minimum security
  2414.     to join is not higher than the default security for new users.  "Sub-boards"
  2415.     basically allow  a single telephone number to offer very different types and
  2416.     levels of services.   Independent  "sub-boards" run under  the same  RBBS-PC
  2417.     service  radically different  types  of  terminals/PC's.   Within  the  same
  2418.     RBBS-PC, one "sub-board"  may have 80 column menus for IBM and compatible PC
  2419.     callers, another may have 40 column menus for Atari and Commodore  PC users,
  2420.     and   still   another   may  have   20   column   menus   for  those   using
  2421.     telecommunications devices for  the deaf (TDD's).  No longer is it necessary
  2422.     to  provide three  independent telephone  numbers  for three  such different
  2423.     services.  All  callers can dial the  same number and simply  switch over to
  2424.     the appropriate board.  Extra lines can be added to a  roll-over and service
  2425.     all the boards.  "Sub-boards" make  it much easier and feasible for a  SYSOP
  2426.     to market  bulletin board services by  allowing hardware to  resources to be
  2427.     pooled under one  software "umbrella" such as RBBS-PC and yet service a very
  2428.     diverse set of requirements --  much the same way that Compuserve does.  One
  2429.     of the best hardware  configurations for running a multi-board  service like
  2430.     this is PC-Slaves, because adding additional boards are extremely easy, with
  2431.     virtually no system degradation.
  2432.  
  2433.     "Sub-boards"  greatly  benefit  "umbrella" organizations.    For  example, a
  2434.     computer club that  covers IBM computers, Apple,  Atari, and Commodore.   No
  2435.     longer  does software intended for one type of computer have to get mixed in
  2436.     with  listings  for  another computer.    Each computer  can  have  not only
  2437.     separate messages, but bulletins and directories as well.
  2438.  
  2439.     "Sub-boards" make  it easy to  have different  "levels" of service  based on
  2440.     security level.   Many SYSOPs run both a  "free" and a "subscription" board.
  2441.     The most typical  arrangement for this is  to have the free board  be on the
  2442.     bottom of a telephone roll-over and the pay board be on the top, and for the
  2443.     top board to require a higher security level.  Non-subscribers who  call the
  2444.     pay board  number get  "kicked" off  the board.   "Sub-boards"  on the  same
  2445.     telephone line would give  both paying and non-paying callers  equal access,
  2446.     if desired.  Another example is that callers with enhanced security can join
  2447.     a sub-board to  get access to even  more downloads.  Or,  executive officers
  2448.     for an  organization can  have access  to a  "sub-board" that  has not  only
  2449.     special messages but special bulletins and files.
  2450.  
  2451.     The naming conventions of the files associated with  a "conference" or "sub-
  2452.     board", for example called CLONES, would be:
  2453.  
  2454.     CLONESM.DEF    --- the message file
  2455.     CLONESU.DEF    --- the user file
  2456.     CLONESW.DEF    --- the "welcome" file (for conferences only)
  2457.     CLONESC.DEF    --- the configuration file (for "sub-boards" only)
  2458.  
  2459.     Using the configuration .DEF file associated  with a "sub-board" allows each
  2460.     SYSOP  to make  the  "sub-boards" as  unique  or similar  as  desired.   Two
  2461.     security levels are very  important.  The minimum security to log  on to the
  2462.     board  determines who can  join the "sub-board".   And  the default security
  2463.     level is what newly added callers are assigned.
  2464.  
  2465.     A "sub-board", like  any conference  (public, semi-private,  or private)  is
  2466.     closed  to all  who  have  insufficient security.    To  make a  "sub-board"
  2467.     completely private, simply set the minimum CONFIG parameter 123 (the minimum
  2468.     security level  a new user  needs to  logon) to  be higher  than any  normal
  2469.     caller would have.  The only way for callers to be able to join a completely
  2470.  
  2471.     RBBS-PC CPC17-2A                                                Page 198
  2472.  
  2473.     private  "sub-board", like  a private  conference is  for the SYSOP  to have
  2474.     added them previously to the users file associated with that "sub- board".
  2475.  
  2476.     The security  level a caller  gets when auto-added  is the  default security
  2477.     level for the "sub-board" and not the  current security level of the caller.
  2478.     This is to prevent special privileges  that a caller has in one  "sub-board"
  2479.     from automatically  propagating  into other  "sub-boards".   For example,  a
  2480.     caller with SYSOP  privileges in one "sub-board" who joins  another does not
  2481.     become receive SYSOP privileges in the other.
  2482.  
  2483.     The security level used to determine what  "sub-boards" a caller can join is
  2484.     not the current  security level but the  original security level  the caller
  2485.     had on the main board.
  2486.  
  2487.     RBBS-PC detects if the bulletins in the "sub-board"  are the same  as in the
  2488.     main  RBBS-PC system  and does  not  re-display them  when a  "sub-board" is
  2489.     joined.
  2490.  
  2491.     "Sub-boards",  public  conferences,  semi-private conferences,  and  private
  2492.     conferences can all co-exist within the same RBBS-PC  system.  Sub-boards in
  2493.     turn can  have sub-boards  in  them, as  well as  public, semi-private,  and
  2494.     private conferences.
  2495.  
  2496.     The primary disadvantage of "conferences" or "sub-boards" that have separate
  2497.     user  files  associated with  them  is  the additional  disk  space  that is
  2498.     required for  the users file.   RBBS-PC's  CONFIG parameter  290 allows  the
  2499.     SYSOP to let a user  on as a "guest"  if there is no  more room left in  the
  2500.     users   file  for  the  "sub-board",  semi-private  conference,  or  private
  2501.     conference.  Not having a user record defeats one of the main mechanisms for
  2502.     remembering a user's  preferences, of course, but the SYSOP can start with a
  2503.     smaller  users file and  expand later  without the  risk of  denying callers
  2504.     access.
  2505.  
  2506.     Obviously, "sub-boards"  take more time to set up and maintain.  While it is
  2507.     nice to be  able to have parts  of RBBS-PC vary radically  from one another,
  2508.     every one  that does  vary is another  item to  create and maintain.   "Sub-
  2509.     boards" can multiply the work necessary, for example, to maintain bulletins.
  2510.     There are  more users  and message  files to  oversee.   However, Kim  Wells
  2511.     MU-EDIT is  an invaluable tool for managing multiple message and user files.
  2512.     Give Kim's RBBS-PC call at (703) 350-1299 and get a copy of MU-EDIT.
  2513.  
  2514.     RBBS-PC CPC17-2A                                                Page 199
  2515.  
  2516.     18.2 Making a "Conference" or "Sub-board" Successful
  2517.     ------------------------------------------------------
  2518.     To make a "conference" or "sub-board" successful several guidelines should
  2519.     be followed rather rigorously:
  2520.  
  2521.     1.   Establish  a "conference"  or "sub-board"  chairman  (i.e. a  SYSOP) to
  2522.     manage the conference. The SYSOP's job is to add new users, delete old ones,
  2523.     make sure that the subject and/or the agenda of the conference is adhered to
  2524.     by  killing messages that  are inappropriate.  This  is best accomplished by
  2525.     having a separate  user file for  each "conference" or "sub-board"  in which
  2526.     the  caller only has SYSOP  privileges when in  the specific "conference" or
  2527.     "sub-board."
  2528.  
  2529.     2.  Establish an  "agenda" or list of subject areas  for the "conference" or
  2530.     "sub-board."   One of these should be about  new subject areas.  These areas
  2531.     should be  VERY narrow  in scope.   The  essence of any  good conference  is
  2532.     keeping it  focused.  Everyone has  been in at  least one meeting/conference
  2533.     that was a waste  of time because whoever was running the meeting/conference
  2534.     did not keep the dialogue centered on the subject or agenda.
  2535.  
  2536.     3.  If  a continuity of dialogue is to be  achieved, it is advisable to keep
  2537.     the  conference  "focused" --  either by  keeping  the number  of conference
  2538.     members limited to thirty  persons or less or by keeping  the subject matter
  2539.     very  narrow  (i.e. the  IBM  PC's  30MB  disk  size limitation).    Another
  2540.     interesting  thing about "private" conferences and sub-boards as implemented
  2541.     within RBBS-PC is that  they are not "public" and, therefore,  are even more
  2542.     protected by the first, fourth, and fifth amendments.
  2543.  
  2544.     RBBS-PC CPC17-2A                                                Page 200
  2545.  
  2546.     18.3 Setting Up a "Conference" or "Sub-board"
  2547.     ---------------------------------------------
  2548.     The SYSOP sets up a "conference"  using the CONFIG utility parameter 167  to
  2549.     pre-format up to two files -- one for the messages to be associated with the
  2550.     conference and one for  the users to be associated  with a conference.   The
  2551.     file name for a "conference"  can be any seven characters that are valid for
  2552.     a file  name.   The eighth character  must be a  "M" (for the  messages file
  2553.     associated the conference) or a "U" (for  the users file associated with the
  2554.     conference).  The  SYSOP can then enter the conference member's names in the
  2555.     conference USERS  file by using the SYSOP function 5.   The SYSOP can "join"
  2556.     any conference and need not be in any particular conference's USERS file.
  2557.  
  2558.     Like "conferences", RBBS-PC  supports an unlimited number of   "sub-boards".
  2559.     "Sub-boards" are  equally easy  to create.   If CLONES where  the name  of a
  2560.     public conference  (the CLONES  message file  CLONESM.DEF exists),  all that
  2561.     would  have to be done to make  CLONES a "sub-board" would be to run  CONFIG
  2562.     to
  2563.          1.) create a separate user's file, CLONESU.DEF, for this formerly
  2564.              public conference (if didn't already have a users file),
  2565.  
  2566.          2.) create a  "sub-board"  configuration file for the CLONES
  2567.              "sub-board" (a file whose name would be ATARIC.DEF).
  2568.  
  2569.     The  easiest way to make a "sub-board"  configuration file is to use the DOS
  2570.     copy command, starting with another configuration file  as a model (e.g. the
  2571.     one  for the main  board).   To continue with  the CLONES  example you would
  2572.     issue the DOS command:
  2573.  
  2574.                COPY RBBS-PC.DEF  CLONESC.DEF
  2575.  
  2576.     Then invoke CONFIG.EXE to edit that file, using the form
  2577.  
  2578.                        CONFIG CLONESC.DEF
  2579.  
  2580.     WARNING!!   When you  create a .DEF file by copying another one  as a model,
  2581.     be sure to run CONFIG against this new  file and change the message and user
  2582.     file names!  Otherwise your sub-board will share the user file  with another
  2583.     message base.  Here change the message file name to CLONESM.DEF and the user
  2584.     file name  to  CLONESU.DEF.   The users  file  name can  be anything  for  a
  2585.     "sub-board" but the extension .DEF is a good idea because RBBS-PC's security
  2586.     system will not let  any file with that extension be  downloaded.  Remember,
  2587.     you  do not want to  allow callers to  download any users file!   You get an
  2588.     extra layer of  protection if you  put the message, user,  and configuration
  2589.     files in an area not available for downloading.
  2590.  
  2591.     RBBS-PC CPC17-2A                                                Page 201
  2592.  
  2593.     18.4 Establishing a "Conference" or "Sub-board" SYSOP
  2594.     -----------------------------------------------------
  2595.     RBBS-PC has more  of the more flexible  and powerful systems for  supporting
  2596.     "assistant sysops" or "conference moderators".  A moderator need not be made
  2597.     a full sysop,  and whatever security a  moderator has, does not  transfer to
  2598.     the rest of the board.   Moderators need two basic functions:
  2599.  
  2600.           1.   read and kill all messages, and
  2601.  
  2602.           2.   add and modify users.
  2603.  
  2604.     The  ability to  do user edits  is controlled  by the security  specified by
  2605.     sysop function 5.   Incidentally, moderators  cannot edit user records  with
  2606.     security higher than theirs.   The ability to read and  kill all messages is
  2607.     controlled by a security level specified in CONFIG.  RBBS-PC supports having
  2608.     separate user files for every message area, so that moderator privileges  in
  2609.     one area do not necessarily transfer to others.
  2610.  
  2611.     To set up a conference or sub-board moderator,  the SYSOP need only
  2612.  
  2613.         1.  "Join" the conference or sub-board,
  2614.  
  2615.         2.  Use SYSOP function 5 to enter the name of the user who is to
  2616.             be the conference chairperson into the conference's USERS file.
  2617.  
  2618.         3.  Set that users security level in the conference's USERS file
  2619.             to a security level that can issue the SYSOP function 5.  This
  2620.             will allow the conference chairman to add users.
  2621.  
  2622.         4.  Set the minimum security to read and kill all messages  to the level
  2623.             of the moderator.
  2624.  
  2625.     Any registered  user can  join a  "public"  conference or  sub-board.   When
  2626.     someone issues the  J>oin command to join  a conference or  sub-board, their
  2627.     standard security  level is  temporarily  superseded by  the security  level
  2628.     associated with  their user  name within  that  conference's or  sub-board's
  2629.     USERS file if it is a "private" conference.
  2630.  
  2631.     For example, a normal user might be given the security required to add users
  2632.     to a particular conference or sub-board USERS file since they are  the SYSOP
  2633.     of  that message  area.  When  a user  joins the conference  or sub-board of
  2634.     which they are chairman, their normal security is bumped up so that they can
  2635.     add users to the USERS file of that  particular message area.  When the same
  2636.     user  exits that message area,  their security level  is returned to normal.
  2637.     If they  should subsequently  join another message  area where they  are not
  2638.     chairman,  they would be  unable to add  users to that  message area's USERS
  2639.     file.  Other than a  message area's SYSOP, none of the message  area members
  2640.     should be given any higher security  than they otherwise enjoy as a  regular
  2641.     RBBS-PC user.
  2642.  
  2643.     RBBS-PC CPC17-2A                                                Page 202
  2644.  
  2645.     19. CALLERS AUTOMATIC NOTIFICATIONS OF MAIL WAITING
  2646.     ---------------------------------------------------
  2647.     RBBS-PC has the ability to notify  callers about mail waiting for them  when
  2648.     they log on.  Callers can be notified for any pair of user/message files
  2649.  
  2650.          (a) how many new messages were left, and
  2651.          (b) whether any new messages are to them personally.
  2652.  
  2653.     RBBS-PC can be  configured such that  the messages individually reported  by
  2654.     number to the caller when the caller logs on are:
  2655.  
  2656.          all messages (i.e. both old and new, or
  2657.          just new messages since the caller last logged on, or
  2658.          no messages
  2659.  
  2660.     at all via  CONFIG parameter 19.   Of  course, RBBS-PC allows  the SYSOP  to
  2661.     determine if callers are reminded of the mail they have left.
  2662.  
  2663.     In a  file specified in CONFIG  parameter 93 (the default  is CONFMAIL.DEF),
  2664.     the  SYSOP can list  the message/user  file combinations  to check  for mail
  2665.     waiting in the format
  2666.  
  2667.                <user file>,<message file>
  2668.  
  2669.     where these are related conference file names.  If  it is assumed that RBBS-
  2670.     PC  is running in a DOS  subdirectory off of the  main root directory of the
  2671.     "C:" drive  and that there  are two conferences,  RBBS-PC and BETA,  then an
  2672.     example of the contents of the CONFMAIL.DEF file is:
  2673.  
  2674.                 C:\RBBS\BETAU.DEF,C:\RBBS\BETAM.DEF
  2675.                 C:\RBBS\RBBS-PCU.DEF,C:\RBBS\RBBS-PCM.DEF
  2676.  
  2677.     The names are  processed exactly as typed, so inclusion of the drive/path is
  2678.     necessary.   The  SYSOP controls  what conferences  get checked for  mail by
  2679.     listing  these file  pairs.   Conferences not  listed will  not be  checked.
  2680.     Callers will get  a report only for conferences  that they are a  member of.
  2681.     Two items of information are reported:
  2682.  
  2683.          number of new messages since last in the conference, and
  2684.          whether any new messages are address to the caller.
  2685.  
  2686.     The name used in  RBBS-PC for the main message  base is taken from the  file
  2687.     name for the message  base.  As with conferences  - if the prefix of  if the
  2688.     user file ends with "M",  the name will be the composed of all  but the last
  2689.     character.  If the name  is "MESSAGES", it will be called "MAIN".  Otherwise
  2690.     the main message base will be called the full prefix.
  2691.  
  2692.     The main message base and  users file can be included  in the list to  scan.
  2693.     You  may want to  coordinate the USERS  and MESSAGES file  names in the same
  2694.     fashion that conference user  files and message file names  are coordinated.
  2695.     If  the main message base  is to be  known as TOP then  call it TOPM.DEF and
  2696.     call the users TOPU.DEF.  RBBS-PC will work as before with the default names
  2697.     USERS and  MESSAGES and  call the  main message  base MAIN,  but you  cannot
  2698.     include the main message base in the  list of message bases to scan for  new
  2699.     mail.   This is  because the  new mail  scan keys  off the  user file  name,
  2700.     whereas the name of the main message base keys off of the message file name.
  2701.     This constraint  can be bypassed by  naming the main message  file MAINM.DEF
  2702.     and it's corresponding user file MAINU.DEF.  However, a good reason  to name
  2703.     the main  message base something else is so that MAIN does not name both the
  2704.     main command section and the main message base.
  2705.  
  2706.     RBBS-PC CPC17-2A                                                Page 203
  2707.  
  2708.  
  2709.     There are 3 philosophies that can  be implemented on message reporting using
  2710.     the CONFIG parameter 19:
  2711.  
  2712.          1.  Report everything.
  2713.  
  2714.          2.  Make a fast minimal report.
  2715.  
  2716.          3.  Make an optimum intermediate report.
  2717.  
  2718.     Reporting everything means reminding callers of messages they left, and give
  2719.     the messages numbers of old and new mail.  To do this it is necessary to set
  2720.     configuration parameters  to remind callers  of old  mail and to  report ALL
  2721.     messages to caller.  Also place "sub-boards"  and private conferences in the
  2722.     mail scan list of CONFMAIL.DEF.
  2723.  
  2724.     Making a fast minimal report means that callers  will not be reminded of old
  2725.     messages, specific message  numbers will not be list, only the number of new
  2726.     messages and whether any are  personal will be reported.  This option is for
  2727.     when you  want people  to get  the caller to  the command  level as  fast as
  2728.     possible.  For example, the main message base is not even used.  To  do this
  2729.     set configuration parameters to NOT remind callers of old mail and to report
  2730.     NO messages  to caller.  Put the main message  base as well as "sub- boards"
  2731.     and private conferences in the mail scan list of CONFMAIL.DEF.
  2732.  
  2733.     Providing  an optimum intermediate report means reporting individual message
  2734.     numbers only for the new mail as well as # of new messages (and  whether any
  2735.     personal).  The best  way to implement this is to set the level of reporting
  2736.     messages to the caller to New  Only and to put all "sub-boards" and  private
  2737.     conferences in the  mail scan list of CONFMAIL.DEF.  Set CONFIG parameter 21
  2738.     to NOT remind callers of old mail.
  2739.  
  2740.     RBBS-PC CPC17-2A                                                Page 204
  2741.  
  2742.     20.  RBBS-PC QUESTIONNAIRE FACILITIES
  2743.     -------------------------------------
  2744.     RBBS-PC provides a highly sophisticated script-driven capability that allows
  2745.     a SYSOP to  ask new  users questions  or questions  of users  when they  say
  2746.     G>oodbye.  To ask new users questions the file named in CONFIG parameter  84
  2747.     must exist.  To ask questions of users when they say G>oodbye the file named
  2748.     in CONFIG parameter 85 must exist.  The  SYSOP can set up the script in such
  2749.     a way as to raise or lower a new  users security level based on the answers.
  2750.     Contained within  the script  is the  file to  which the  answers are  to be
  2751.     written.  
  2752.  
  2753.     RBBS-PC will only  activate the  corresponding script files  if they  exist,
  2754.     otherwise the functions are bypassed.
  2755.  
  2756.     The script files  should be created with  your favorite editor.   During the
  2757.     testing phases both EDLIN and WordStar were used and both worked correctly.
  2758.  
  2759.     All "script" files are formatted the same and contain support for:
  2760.  
  2761.          o Branch to labels
  2762.          o Display lines
  2763.          o Display line and get response
  2764.          o Response validation (Multiple choice)
  2765.          o Numeric validation
  2766.          o Forward and backward branching
  2767.          o Raising and lowering user security level
  2768.          o Aborting the questionnaire
  2769.          o Chaining to another questionnaire
  2770.          o Invoke a macro from within a questionnaire
  2771.          o "Turbo" key can be turned on from within a questionnaire
  2772.  
  2773.     The first line  in every script file  must contain the  file name where  the
  2774.     responses  to the  script will be  appended as  the first parameter  and the
  2775.     maximum security level a users security level can be raised to as the second
  2776.     parameter.  This  file can be any  valid text type file.   The rest of  each
  2777.     script  file  must contain  valid script  commands.   Script commands  are 1
  2778.     character in length and must be in column 1 of each script line.
  2779.  
  2780.     Following is a list and description of valid script commands:
  2781.  
  2782.          :  A colon indicates a label command
  2783.          *  An asterisk indicates a display data command
  2784.          ?  A question mark indicates a display and wait for response command
  2785.          =  An equal sign indicates a multiple choice branch command
  2786.          >  A greater than symbol indicates a goto command
  2787.          +  A plus sign indicates a raise security level command
  2788.          -  A minus sign indicates a lower security level command
  2789.          @  An "at" sign means to abort questionnaire and do not write results
  2790.          &  An ampersand means to establish a questionnaire chain
  2791.          T  The letter "T" turns on the "turbo" key mode
  2792.          M  The letter "M" executes a "macro"
  2793.          >  Assigns a value to a work variable
  2794.  
  2795.     CONFIG parameter  94 controls the maximum number  of work variables that can
  2796.     be handled by questionnaires.
  2797.  
  2798.     RBBS-PC sophisticated questionnaires even support "graphics" versions of the
  2799.     questionnaires.  Graphics versions use the standard convention of ending the
  2800.     file prefix  with "C" for  color graphics and  "G" for ansi graphics.   E.g.
  2801.     HLPRBBSC.DEF and HLPRBBSG.DEF are graphics versions of HLPRBBS.DEF.
  2802.  
  2803.     RBBS-PC CPC17-2A                                                Page 205
  2804.  
  2805.  
  2806.     20.1 Branching to Labels 
  2807.     ------------------------
  2808.     :  Colon (Label command)
  2809.        This command is used to  provide labels that can be branched to from  =  
  2810.     and > commands.
  2811.  
  2812.                 :QUESTION1
  2813.  
  2814.     Numeric labels are  not recommended because  they are easy  to confuse  with
  2815.     work  variables.   SmartText  variables  will  be interpreted  as  such, eg.
  2816.     ":-{FN" will substitute  the first name.   SmartText and Work  Variables are
  2817.     dynamically substituted into all questionnaire lines.  For example, 
  2818.  
  2819.              >-.[8].-
  2820.  
  2821.     will  substitute the value  of work variable 8  for "[8]", so  that if 8 has
  2822.     "edit" as its value, it will go to the  label "-.edit.-".
  2823.  
  2824.     The  ability to get  and substitute values,  and to  have graphics versions,
  2825.     means that questionnaires  can support many  of the features of  full screen
  2826.     editing,  including transmitting a template, then overlaying values into the
  2827.     template.  An example that shows the power of questionnaires is
  2828.  
  2829.              ?29Change what field (1,2,...20)
  2830.              ?[29]Change field [29]. from [[29]] to
  2831.  
  2832.     This asks which field to change and stores answer in work  variable 29 (i.e.
  2833.     value of work  variable 29 is "7").    The  second question then stores  the
  2834.     answer in the value of work variable 29, displays the name of the work field
  2835.     being changed,  and  then displays  the  old  value of  the  work  variable.
  2836.     Suppose that the  value of work variable  7 is "Yes".    Then the series  of
  2837.     substitutions RBBS-PC makes into the second line before executing it are:
  2838.  
  2839.              ?7Change field [29]. from [[29]] to
  2840.              ?7Change field 7. from [[29]] to
  2841.              ?7Change field 7. from [7] to
  2842.              ?7Change field 7. from Yes to
  2843.  
  2844.     RBBS-PC CPC17-2A                                                Page 206
  2845.  
  2846.     20.2 Display Data Command
  2847.     -------------------------
  2848.     *  Asterisk (Display data command)
  2849.        This command is used to send data to the user.  An line  to send the text
  2850.     "In order to better......., I would" would look like
  2851.  
  2852.              *In order to better serve those who pass this way, I would 
  2853.  
  2854.     "*/FL" will no longer display the "/FL" because it is interpreted as a macro
  2855.     command (see  section 8.8).   If you  want to  work variables  to overlay  a
  2856.     display template, keeping it's length (e.g. for columnar display), put "/FL"
  2857.     after the  "*".  E.g.  if variable 1 has  value "12345" and  2 has "abcdef",
  2858.     then
  2859.  
  2860.                 */FL.[1]....[2]......
  2861.  
  2862.        will display ".12345..abcdef...", whereas
  2863.  
  2864.                 *.[1]....[2]......
  2865.  
  2866.        will display ".12345....abcdef......".
  2867.  
  2868.     One of the more useful capabilities  of macros that questionnaires can  make
  2869.     use of  is the ability to append data to any work file, where work variables
  2870.     are merged into a  form.   This allows the questionnaire data to be saved in
  2871.     virtually any format desired.
  2872.  
  2873.     The other extremely useful macro  capability that questionnaires can utilize
  2874.     is the ability to retrieve data from a file  into a form, in effect adding a
  2875.     data based file retrieval capability.
  2876.  
  2877.     20.3 Display Data And Get Response
  2878.     ----------------------------------
  2879.     ?  Question mark (Display data and get response)
  2880.        This command is used to  send data to the user and wait for a  response. 
  2881.       The  user will be required to input a response.   The ENTER key alone is  
  2882.     an invalid response.  No other checks are made.
  2883.  
  2884.               YOU OWN YOUR OWN PC? (Y/N)
  2885.  
  2886.     The prompt  command accepts an optional  number which is interpreted  as the
  2887.     number of the Work Variable to store the answer in.  For example, "
  2888.  
  2889.               ?8Enter Dept
  2890.  
  2891.     will  store the answer not only  in the regular way  for a questionnaire but
  2892.     also in work variable 8.
  2893.  
  2894.     RBBS-PC CPC17-2A                                                Page 207
  2895.  
  2896.     20.4 Multiple Choice Response
  2897.     -----------------------------
  2898.     =  Equal sign (Response validation - Multiple choice)
  2899.        This  command  is used  in conjunction  with  the ?  command  and must   
  2900.     immediately  follow the  ? command  for which it  applies.   This command   
  2901.     allows  for  checking/editing  of  single  character  responses  to  the    
  2902.     preceding ? command and  allows branch logic to be exercised based on    the
  2903.     response given.  Multiple = commands must be coded on the same    line.  The
  2904.     format follows:
  2905.  
  2906.        =AXXXXXXXXX=BYYYYYYYYY= ZZZZZZZZZZ
  2907.  
  2908.        =  Indicates that a single character comparison value follows
  2909.        A  Is the comparison value
  2910.        X  Is the label to branch to if the response is "A"
  2911.        =  Indicates that a single character comparison value follows
  2912.        B  Is the comparison value
  2913.        Y  Is the label to branch to if the response is "B"
  2914.        =  Indicates that a single character comparison value follows
  2915.           (SPACE) This is a special comparison value that is always used as the
  2916.           last comparison value and means "INVALID" response given
  2917.        Z  Is the label to branch to if an invalid response is given
  2918.  
  2919.        Maximum line length is 255 characters and the last = on the line "MUST"
  2920.        have a comparison value of " " (SPACE).
  2921.  
  2922.                 :QUESTION1
  2923.                 ?Do you run a BBS system.  (Y/N)
  2924.                 =YQUESTION2=NQUESTION2= QUESTION1E
  2925.                 :QUESTION1E
  2926.                 *Please respond Y or N
  2927.                 >QUESTION1
  2928.                 :QUESTION2
  2929.  
  2930.        There is an additional  format for the = command, where  the comparison  
  2931.     value of  # (Pound sign) is  used.  This  is used as  a numeric check and   
  2932.     encompasses 0-9, (), - and space.  This format requires two entries.     The
  2933.     first  is to test  for numerics  and the  second is the  invalid response   
  2934.     branch label (e.g. "=#QUESTION3= QUESTION2E").
  2935.  
  2936.     20.5 Forward And Backward Branching
  2937.     -----------------------------------
  2938.     >  Greater than sign (Forward and backward branching)
  2939.        This command  is used to  branch to specific  labels within the  script  
  2940.     file.
  2941.  
  2942.                 >QUESTION4
  2943.  
  2944.     RBBS-PC CPC17-2A                                                Page 208
  2945.  
  2946.     20.6 Raise/Lower User's Security Level
  2947.     --------------------------------
  2948.     +  Plus sign (Raise user security level)
  2949.        This command will add the value in  columns 2-6 to the default security  
  2950.     level given new users or the current security level of old users.  
  2951.  
  2952.                +5
  2953.  
  2954.     -  Minus sign (Lower user security level)
  2955.        This command  will subtract  the value in  columns 2-6  to the default   
  2956.     security given new users or the current security level of old users.
  2957.  
  2958.                 -1
  2959.  
  2960.     20.7 Abort Questionnaire
  2961.     ------------------------
  2962.     @  At sign (Abort questionnaire)
  2963.        This command will terminate the questionnaire and NOT write the response
  2964.        to the output file as in the following example.
  2965.  
  2966.                 :QUESTION1
  2967.                 ?Have you answered the questionnaire before.  (Y/N)
  2968.                 =YQUESTION2=NQUESTION3= QUESTION1E
  2969.                 :QUESTION1E
  2970.                 *Please respond Y or N
  2971.                 >QUESTION1
  2972.                 :QUESTION2
  2973.                 @
  2974.                 :QUESTION3
  2975.  
  2976.     20.8 Chain Questionnaire
  2977.     ------------------------
  2978.      & Ampersand (Chain questionnaire)
  2979.        This command  will establish  the next questionnaire  in the chain.   The
  2980.     file named  in columns 2-80  will be used as  a continuation to  the current
  2981.     questionnaire when the current questionnaire reaches its last line.
  2982.     i.e.   &L:\RBBS\QUESCONT.DEF
  2983.  
  2984.     20.9 Turbo Keys
  2985.     ---------------
  2986.     T Turbo Key
  2987.  
  2988.     This is used to turn on Turbo Key  for a prompt where a single keystroke  is
  2989.     expected.  TurboKey  causes the  next keystroke  to be taken  as the  answer
  2990.     immediately without having to press Enter, if the caller has TurboKey on.
  2991.  
  2992.     20.10  Macro Execute
  2993.     --------------------
  2994.     M Marcro Execute
  2995.  
  2996.     This command is used to execute  a specified macro named after the  command,
  2997.     e.g. "M  C:\RBBS\FIZ.IMC".   Control returns  to the  questionnaire after  a
  2998.     macro is executed.    One of  the most important capabilities  macros add to
  2999.     questionnaires is  the ability  to append  data to  any file  in any  format
  3000.     desired.    Hence the data in questionnaires can be saved where ever desired
  3001.     in whatever format desired.   If a macro saves the data and you  do not want
  3002.     the  normal  output  on completion  of  the  questionnaire,  just abort  the
  3003.     questionnaire  at the end.   Macros also  have the ability  to retrieve data
  3004.     from files and then display on the screen.
  3005.  
  3006.     RBBS-PC CPC17-2A                                                Page 209
  3007.  
  3008.     20.11  Assign Value
  3009.     -------------------
  3010.     < Marcro Assign
  3011.  
  3012.     This  command assigns  a value  to a work  variable.   For example,  "<2 XT"
  3013.     assigns value "XT" to work variable 2. 
  3014.  
  3015.     RBBS-PC CPC17-2A                                                Page 210
  3016.  
  3017.     21. RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS
  3018.     -----------------------------------------------------
  3019.     RBBS-PC attempts to nurture  the maximum amount of diversity  and innovation
  3020.     as possible.   For this reason the source  code has always been distributed.
  3021.     The free exchange  of information,  on of RBBS-PC's  two primary  objectives
  3022.     requires  that  communications occur.    With  PC's this  communications  is
  3023.     electronic   and  electronic   communications  fosters  a   multiplicity  of
  3024.     "protocols" in which data can be exchanged.
  3025.  
  3026.     A  "protocol"  for  the exchange  of  files  is just  a  set  of cooperative
  3027.     conventions that allow two  different computer's software to  transfer files
  3028.     between themselves.  RBBS-PC supports four  "protocols" within its own BASIC
  3029.     source code  -- ASCII, Xmodem (checksum),  Xmodem (CRC), and Ymodem.   These
  3030.     are totally configurable by the SYSOP when setting up RBBS-PC.
  3031.  
  3032.     In addition  to these four "protocols" and in  order to provide advocates of
  3033.     specific   protocols  a   means  of  adding   their  particular   flavor  of
  3034.     communications protocol to RBBS-PC, a standard interface has been created so
  3035.     that "external" protocols can be installed in RBBS-PC.  "External" protocols
  3036.     are  simply defined as  programs outside of  RBBS-PC which  perform the file
  3037.     transfer.
  3038.  
  3039.     Before calling "external" protocol drivers, RBBS-PC will do the following:
  3040.  
  3041.     1.  verify that the file exists if the file is to be downloaded.
  3042.     2.  for uploads, verify that the file name requested is  valid.
  3043.     3.  pass the communications  port  to  the vendor's protocol-
  3044.         handling routine with carrier detect on.
  3045.  
  3046.     RBBS-PC will call the external protocol drivers either via the SHELL command
  3047.     in BASIC or via a .BAT file.
  3048.  
  3049.     RBBS-PC CPC17-2A                                                Page 211
  3050.  
  3051.     21.1  Parameters passed to a protocol driver
  3052.     --------------------------------------------
  3053.     RBBS-PC detects the installation of external  file transfer protocols via an
  3054.     optional RBBS-PC system  file whose default name  is PROTO.DEF.  If  no such
  3055.     file  exists, all and  only internal protocols  will be available  -- Ascii,
  3056.     Xmodem, XmodemCRC,  Ymodem.  This file may be  used to rename or delete some
  3057.     or all of RBBS-PC's internal protocols.  If a PROTO.DEF  file exists, all of
  3058.     RBBS-PC's internal  protocols must  be specified  in it  as well.   Internal
  3059.     protocols are NOT automatically included when a PROTO.DEF file exists!
  3060.  
  3061.     The protocol definition  file has thirteen  (13) parameters passed for  each
  3062.     external protocols defined for RBBS-PC.  Each parameter can be on a separate
  3063.     line of its  own or all  parameters can be  on a single  line (separated  by
  3064.     commas).  The parameters passed for each protocol specified are:
  3065.  
  3066.               Parameter       Description
  3067.  
  3068.               1      Protocol Name
  3069.               2      Security Level required to use protocol
  3070.               3      Method to invoke protocol
  3071.               4      Whether 8 bit connection required
  3072.               5      Whether "reliable" connection required
  3073.               6      Whether "batch" mode supported
  3074.               7      Number of bytes in a block transferred
  3075.               8      Indicate transfer always successful
  3076.               9      Factor to estimate file transfer time
  3077.              10      RBBS-PC "macro" to invoke before protocol
  3078.              11      Method for checking transfer's success
  3079.              12      Template to use for downloading
  3080.              13      Template to use for uploading
  3081.  
  3082.     Protocol Name -- The FIRST CHARACTER is the letter by which a caller selects
  3083.     the protocol.      The prompt  for the  selection of  protocol includes  the
  3084.     protocol  name.   It is  recommended  that the  second character  be  ")" to
  3085.     resemble  the rest  of  the prompts  in RBBS-PC,  e.g.  "Z)modem".   RBBS-PC
  3086.     defaults to putting  each protocol on the  same line, separated by  a comma,
  3087.     until the  line gets too long.  Each SYSOP  can control the placement of the
  3088.     line by putting a carriage return line feed at the end of the protocol name.
  3089.     If this  is done,  the entire  protocol name must  be in  parentheses.   For
  3090.     example, instead of the prompt
  3091.  
  3092.     A)scii,X)modem,C)rcXmodem,Y)modem,N)one
  3093.  
  3094.     a SYSOP may want the prompt to be
  3095.  
  3096.     A)scii (text files only)
  3097.     X)modem checksum
  3098.     C)rc Xmodem
  3099.     Y)modem (1K Xmodem)
  3100.     N - None (cancel)
  3101.  
  3102.     RBBS-PC CPC17-2A                                                Page 212
  3103.  
  3104.     Then the protocol definition  file , PROTO.DEF, should be  constructed using
  3105.     quotes (to include the carriage return/line  feed in the first parameter) as
  3106.     follows:
  3107.  
  3108.     "A)scii (text files only)
  3109.     ",...
  3110.     "X)modem checksum
  3111.     ",...
  3112.     "C)rc Xmodem
  3113.     ",...
  3114.     "Y)modem (1K Xmodem)
  3115.     ",...
  3116.     "N - None (cancel)
  3117.     ",...
  3118.  
  3119.     with the remaining 12 parameters put where "..." occurs.
  3120.  
  3121.     Security  Level  -- This  is the  minimum  security to  be able  to  use the
  3122.     protocol being described.
  3123.  
  3124.     Method  to Invoke  Protocol --  A protocol  can be invoked  by one  of three
  3125.     methods:
  3126.              shell,
  3127.              door, or
  3128.              internal (S, D, or I).
  3129.  
  3130.     If "I" is  specified, it must be immediately followed by a letter specifying
  3131.     what internal  protocol to  use, where  the choices  are A,  X, C,  Y, or  N
  3132.     respectively  for  Ascii,  Xmodem,  Xmodem  CRC,  Ymodem,  or  None  (cancel
  3133.     transfer).  "IC"  would mean to  use RBBS-PC's internal Xmodem  CRC.  If  no
  3134.     protocol is specified  equivalent to the  internal "None", RBBS-PC will  add
  3135.     it.  If the letter N is  used for a transfer protocol, another protocol must
  3136.     be specified that is equivalent to "None".
  3137.  
  3138.     Whether  to Require 8 Bit -- By putting  "8" in this parameter, the SYSOP is
  3139.     specifying that  the protocol  requires the  caller to  be able  to send  or
  3140.     receive 8 data bits.   If 8 data bits is required and the caller is not at 8
  3141.     bit, RBBS-PC will prompt the  caller to change to 8 bit in order  to use the
  3142.     protocol.
  3143.  
  3144.     Whether  A Reliable  Connections  Is  Required --  By  putting  "R" in  this
  3145.     parameter, the SYSOP  is specifying that the  protocol will not be  shown or
  3146.     made available  to the caller unless the  connections is reliable (i.e. such
  3147.     as Microcom's MNP protocol that is built into many modems).
  3148.  
  3149.     Whether Support  Batch --  By putting "B"  in this  parameter, the  SYSOP is
  3150.     indicating  that  "batch"  file transfers  are  allowed  with the  protocol.
  3151.     "Batch" means a multi-file download request will be processed together.  The
  3152.     receive function in Qmodem's "batch" Ymodem attempts to write the file being
  3153.     received to the  same letter  drive and  path name as  it is  stored on  the
  3154.     sending PC.  Because it  is unlikely that the  PC running RBBS-PC will  have
  3155.     the  same disk letters and path names as the callers, it is recommended that
  3156.     QMODEM's "batch" Ymodem not be  used for receiving files via "batch"  Ymodem
  3157.     (use DSZ's instead).   RBBS-PC enters an  external protocol only once  to do
  3158.     multiple  file  downloads.    RBBS-PC  has  been tested  with  such  "batch"
  3159.     protocols as Zmodem's DSZ, Megalink, and Sealink.
  3160.  
  3161.     Blocksize -- This  parameter indicates  the number  of bytes  in each  block
  3162.     transferred.  This is only used to inform the caller the number of blocks to
  3163.     expect when downloading.   A zero in  this parameters will cause  RBBS-PC to
  3164.  
  3165.     RBBS-PC CPC17-2A                                                Page 213
  3166.  
  3167.     report only  the number of  bytes to expect.   For Xmodem or  XmodemCRC this
  3168.     value would be 128.  For Ymodem this value would be 1024.
  3169.  
  3170.     Indicate Transfers Always Successful -- If there is no way for  the protocol
  3171.     to inform RBBS-PC if a transfer was successful, put a "F" in this parameter,
  3172.     which stands  for "Fake" a  success report.   This means that  all transfers
  3173.     will be regarded as successful.
  3174.  
  3175.     Zmodem (DSZ) used in a  multi-tasking DOS environment (i.e. where there  can
  3176.     only be  a single  environment)  and CLINK  are examples  of protocols  that
  3177.     require this to be set.
  3178.  
  3179.     Factor  to Estimate File Transfer Time -- This is the decimal number used by
  3180.     RBBS-PC to  estimate the  elapse time  to download  a file.  The higher  the
  3181.     number, the faster the protocol and the lower the time estimate.    Standard
  3182.     equivalents in RBBS-PC are:
  3183.  
  3184.          Ascii .........  0.92
  3185.          Xmodem ........  0.78
  3186.          XmodemCRC .....  0.78
  3187.          Kermit ........  0.78
  3188.          Ymodem ........  0.87
  3189.          Imodem ........  0.90
  3190.          YmodemG .......  0.95
  3191.          Windowed xmodem  0.78
  3192.  
  3193.     If no value is specified, a default of 0.87 will be used.
  3194.  
  3195.     RBBS-PC "Macro" to  Invoke Before  Protocol -- This  is the RBBS-PC  "macro"
  3196.     (i.e. a series  of standard RBBS-PC commands) to invoke  before invoking the
  3197.     protocol.  It can be used to display special messages, to delay the start of
  3198.     the protocol, or to prompt for special information passed to the protocol.
  3199.  
  3200.     Method for Checking Transfer's Success -- This is required only for external
  3201.     protocols.   This  parameter  indicates  how RBBS-PC  is  to  detect a  file
  3202.     transfer's failure.  The format is "x=y=z" where:
  3203.                x is which parameter tells whether the transfer was successful,
  3204.                y is the string which indicates failure, and
  3205.                z is an optional parameter telling RBBS-PC whether to write out
  3206.                  information needed when DOORing to a protocol in advance of
  3207.                  the file exchange.
  3208.  
  3209.     For QMXFER.EXE from John Friel and the Forbin Project, this would be "4=F" -
  3210.     meaning the 4th parameter indicates failure if it begins with "F".
  3211.  
  3212.     For Zmodem as  implemented in DSZ from Omen Technologies,  the proper choice
  3213.     depends on whether SHELLing or DOORing is used.   For SHELLing, put in "1=E"
  3214.     to indicate  that the  first parameter  uses "E"  to indicate  an error  has
  3215.     occurred.  For DOORing, put in "4=E=A" to indicate that the fourth parameter
  3216.     uses "E" when an error  has occurred.  The "=A" means that RBBS-PC  is to do
  3217.     an advance write of the  filename and protocol used.   DSZ then appends  its
  3218.     error report to the log file.   To the file "XFER-" plus  node # plus ".DEF"
  3219.     RBBS-PC  will write out  a line containing  "<filename>,,<protocol letter>".
  3220.     Omitting an "=" causes a default to "4=F".  The file checked is "XFER-" plus
  3221.     the node number plus  the extension "DEF".    On node 1 the file  checked is
  3222.     "XFER-1.DEF".
  3223.  
  3224.     Template  to  Use for  Downloading  -- This  is required  only  for external
  3225.     protocols.   It tells RBBS-PC how  to invoke a download.   See the following
  3226.     section on discussion of "templates". 
  3227.  
  3228.     RBBS-PC CPC17-2A                                                Page 214
  3229.  
  3230.  
  3231.     Template  to  Use for  Uploading  --  This  is  required only  for  external
  3232.     protocols.  It tells RBBS-PC how to invoke an upload.
  3233.  
  3234.     RBBS-PC CPC17-2A                                                Page 215
  3235.  
  3236.     21.2  Calling external protocols using "templates"
  3237.     --------------------------------------------------
  3238.     A "template" is used to inform  RBBS-PC how to invoke an external  protocol.
  3239.     The first  word  of the  template  must be  the  file name  (including  file
  3240.     extension) of the  program to invoke.  RBBS-PC will check  to make sure that
  3241.     the file exists.  If the file does not exists, the protocol will not be made
  3242.     available to  the caller.   If the  file does exists,  the protocol will  be
  3243.     shown to the caller.
  3244.  
  3245.     RBBS-PC will dynamically substitute values  for pre-defined strings inside a
  3246.     "template".   Each  supported string  is enclosed in  square brackets.   The
  3247.     strings supported include:
  3248.  
  3249.     [n]       where n is a positive integer.  Substitutes value in the array A$,
  3250.               which can best be viewed as a work array.  Macros can store       
  3251.        prompted values in specific elements in the array.
  3252.  
  3253.     [FILE]    Name of the file (FILE.NAME$) to be transferred.
  3254.  
  3255.     [BAUD]    Baud rate.  Speed at which the caller dialed RBBS-PC.
  3256.  
  3257.     [PARITY]  Parity used by the caller.
  3258.  
  3259.     [PORT]    DOS device name for the communications port to be used for the    
  3260.           file transfer (COM1,COM2, etc.).
  3261.  
  3262.     [PORT#]   Number of the communications port to be used for the file transfer
  3263.               (1,2,3, etc.).
  3264.  
  3265.     [NODE]    Number of the RBBS-PC node invoking the file transfer (1,2,3,     
  3266.               etc.).
  3267.  
  3268.     [PROTO].  Letter of the protocol for the file transfer.
  3269.  
  3270.     Everything else in a  template will be passed intact.   If the external file
  3271.     transfer is  to be invoked via a SHELL, it  is recommended that the external
  3272.     file transfer program be SHELLed to directly.  If the external file transfer
  3273.     is to be invoked via a DOOR, it can be either
  3274.  
  3275.          1.)  DOORed to directly using the same template as for SHELLing, or
  3276.  
  3277.          2.)  DOORed to indirectly via  a .BAT file with the command  parameters
  3278.     passed to it  by RBBS-PC.   For example,  a "door" for  QMXFER might have  a
  3279.     download template of:
  3280.  
  3281.     "RBBSQM.BAT [FILE] [PORT] [BAUD] [PROTO]"
  3282.  
  3283.     and the file RBBSQM.BAT have the following in it:
  3284.  
  3285.               C:QMXFER.COM -s -f %1 -l %2 -c -b %3 -p %4
  3286.  
  3287.     DOS substitutes the passed  parameters for the variables beginning  with the
  3288.     percent sign.  .BAT files are needed if additional programs to run before or
  3289.     after the actual file transfer.
  3290.  
  3291.     The following  examples should  provide some  help in  understanding how  to
  3292.     invoke external protocols:
  3293.  
  3294.     Example #1:
  3295.  
  3296.     RBBS-PC CPC17-2A                                                Page 216
  3297.  
  3298.     Z)ippy,5,S,8,,,,,0.98,,,"c:\utl\zippy -s [FILE]","c:\utl\zippy -r [FILE]"
  3299.  
  3300.     Can be interpreted to be:
  3301.          used "Z" as invoking letter,
  3302.          put "Z)ippy" in the prompt,
  3303.          the minimum security to use this protocol is 5,
  3304.          the protocol will be invoked via a SHELL command,
  3305.          an 8-bit connection is required,
  3306.          estimate the download time as 0.98 times as fast as normal,
  3307.          use normal RBBS-PC type of report to check for a successful transfer,
  3308.          invoke the protocol for downloads using the following string:
  3309.               "c:\utl\zippy -s [FILE]"
  3310.          and invoke the protocol for uploads using the following string:
  3311.               "c:\utl\zmodem -r [FILE]"
  3312.          where the file name is substituted for "[FILE]" in either case.
  3313.  
  3314.     Example #2:
  3315.  
  3316.     X)modem,5,IX,8,,,128,,0.8,,,,
  3317.  
  3318.     Can be interpreted to be:
  3319.          used "X" as invoking letter,
  3320.          put "X)modem" in the prompt,
  3321.          the minimum security to use this protocol is 5,
  3322.          the protocol is an internal RBBS-PC protocol,
  3323.          an 8-bit connection is required, and
  3324.          estimate the download time as 0.8 times as fast as normal.
  3325.  
  3326.     RBBS-PC CPC17-2A                                                Page 217
  3327.  
  3328.     21.3  Parameters Returned by a Protocol Driver
  3329.     ----------------------------------------------
  3330.     All  protocol  drivers are  expected to  return  information about  the file
  3331.     transfer in a file  named XFER-xx.DEF where the value for xx  is the node ID
  3332.     (1 to 36).  If the protocol  cannot accommodate this minimal requirement, it
  3333.     can still be used by telling  RBBS-PC to indicate file transfers are  always
  3334.     successful -- section 21.1, parameter 9.
  3335.  
  3336.     The one item of information RBBS-PC requires to be returned from an external
  3337.     protocol drive  is whether  or not the  file transfer  was successful.   The
  3338.     failure indicator MUST BE the first character of any specified parameter
  3339.     in the file  XFER-xx.DEF.  To show that file transfer failures are indicated
  3340.     by the first parameter and the letter "E" in the file XFER-xx.DEF, parameter
  3341.     11  (as described in section 21.1) would be  written as "1=E".  To show that
  3342.     file transfer failures are indicated by the fourth parameter  and the letter
  3343.     "F", parameter 11 (as described in section 21.1) would be written as "4=F".
  3344.  
  3345.     No other information  is required  when SHELLing to  external file  transfer
  3346.     protocols.  However,  when DOORing to  external file transfer protocols  the
  3347.     log file for the transfer MUST HAVE the file name as the first parameter.
  3348.  
  3349.     Protocol drivers that do  not have the file name as  the first parameter can
  3350.     still be used by  telling RBBS-PC to write out three  parameters (file name,
  3351.     an empty  parameter, and the  letter of  the file transfer  protocol) before
  3352.     invoking the external file protocol.  This is done by using parameter 11 (as
  3353.     described  in section 21.1).   As  an example, to  DOOR to  an external file
  3354.     transfer protocol that indicates a file transfer failure by using the letter
  3355.     "F"  in the fourth parameter, but which does  not return the file name used,
  3356.     parameter 11 (as  described in  section 21.1) would  be written as  "4=F=A".
  3357.     The external protocol would then append its own information to the log file.
  3358.  
  3359.     RBBS-PC CPC17-2A                                                Page 218
  3360.  
  3361.     21.4  The Protocol Drivers Tested With RBBS-PC
  3362.     ----------------------------------------------
  3363.     RBBS-PC has been tested with the following protocol drivers:
  3364.  
  3365.     CLINK -- From System Enhancement Associates.  Supports batch file transfers
  3366.         but requires that transfers always be assumed successful.
  3367.  
  3368.     DSZ -- From Omen Technologies.  Supports Ymodem, Ymodem Batch, YmodemG, and
  3369.         Zmodem.   YmodemG  requires  a "reliable"  connection.   DSZ  logs  the
  3370.         results  of the file transfers to a file specified in  the  environment
  3371.         variable DSZLOG.  Therefore, the AUTOEXEC.BAT file for an RBBS-PC  that
  3372.         uses DSZ should specify
  3373.  
  3374.          "SET DSZLOG=XFER-x.DEF"
  3375.  
  3376.         where  x  is the node number.   DSZ seems unable to create a  log  file
  3377.         whenever a drive or path is specified.  If invoking ZMODEM via the DOOR
  3378.         mechanism,  use the "=A" option at the end of the success method  check
  3379.         so that RBBS-PC will append the information to the DSZ log it needs and
  3380.         DSZ  will then append the success report.  In a multi-user  environment
  3381.         where  a  different  environment  variable for each  node  can  not  be
  3382.         specified  (i.e. all nodes must share the same DSZ log  file),  specify
  3383.         that  a all transfers are always successful for protocols  handled  via
  3384.         DSZ.
  3385.  
  3386.     MLINK -- MEGALINK protocol supports batch file transfers but requires  that
  3387.         transfers always be assumed successful.
  3388.  
  3389.     PC-KERMIT  --  from Columbia University.  PCKERMIT.EXE is supplied  by  The
  3390.         Source  as  a  public service and consists  of  sliding  window  KERMIT
  3391.         protocol. The development of "windowing" within the KERMIT architecture
  3392.         (i.e.  Super KERMIT) was funded by The Source and implemented by  Larry
  3393.         Jordan and Jan van der Eijk.
  3394.  
  3395.         Columbia  University  holds  the copyright  and  maintains  the  Kermit
  3396.         protocol. Like RBBS-PC, Columbia University allows KERMIT to be  passed
  3397.         along  to others and "ask only that profit not be your goal, credit  be
  3398.         given where it is due, and that new material be sent back to us so that
  3399.         we   can  maintain  a  definitive  and  comprehensive  set  of   KERMIT
  3400.         implementations".
  3401.  
  3402.         PCKERMIT.EXE  is  not  a terminal program.  It  simply  implements  the
  3403.         Kermit protocol, including the sliding window extension.  It will  work
  3404.         with  older  "Kermit Classic" implementations as  well,  via  automatic
  3405.         negotiation  between the two Kermit programs.  PCKERMIT.EXE runs  as  a
  3406.         "one-shot"  execution  then  returns to  RBBS-PC.   PCKERMIT  does  not
  3407.         establish   a  carrier  with  a  remote  system.   The  connection   is
  3408.         established  by  RBBS-PC.   File  transfers  must  always  be   assumed
  3409.         successful.
  3410.  
  3411.     QMXFER  --  is  supplied  by The Forbin Project as  a  public  service  and
  3412.         supports   five  different  protocols  --  XMODEM  (checksum),   XMODEM
  3413.         (cyclical  redundancy check), YMODEM, YMODEMG, and IMODEM.  QMXFER  was
  3414.         implemented by John Friel III, author of QMODEM. YMODEM and YMODEMG are
  3415.         protocols designed by Chuck Frosberg.  IMODEM is a protocol designed by
  3416.         John  Friel.  The later two are designed to work when the link  between
  3417.         the two modems is "error free" (i.e. both modems have the MNP  protocol
  3418.         built  in)>  QMXFER.COM runs as a "one-shot" execution then returns  to
  3419.         RBBS-PC.   QMXFER  does not establish a carrier with a  remote  system.
  3420.         The  connection is established by RBBS-PC.  File transfer failures  are
  3421.  
  3422.     RBBS-PC CPC17-2A                                                Page 219
  3423.  
  3424.         indicated by an "F" in the fourth parameter of the log file returned to
  3425.         RBBS-PC.
  3426.  
  3427.     WXMODEM  --  is  supplied by The Forbin Project as  a  public  service  and
  3428.         supports the window XMODEM protocol designed by Pete Boswell.  Like all
  3429.         of  RBBS-PC's  protocol  drivers,  WXMODEM.COM  runs  as  a  "one-shot"
  3430.         execution  then  returns  to RBBS-PC.  WXMODEM  does  not  establish  a
  3431.         carrier  with a remote system.  The connection is established by  RBBS-
  3432.         PC.   File  transfer  failures are indicated by an "F"  in  the  fourth
  3433.         parameter of the log file returned to RBBS-PC.
  3434.  
  3435.     Other protocols tested with RBBS-PC include SuperK and Jmodem.
  3436.  
  3437.     RBBS-PC CPC17-2A                                                Page 220
  3438.  
  3439.     22. UPLOADED FILE TIPS
  3440.     ----------------------
  3441.     If someone uploads a BASIC file to you, and it will not list on  your screen
  3442.     using the DOS TYPE  command,  you should go into BASIC,  load the file, list
  3443.     it,  then re-save it using the same name.  If when you try  to load the file
  3444.     into the  BASIC interpreter you  get a `Direct  Statement In   File'   error
  3445.     printed on  the screen, the  BASIC file  has a line  without a line  number.
  3446.     This will not interfere  with  the   re-saving of the file unless the direct
  3447.     statement is at the  beginning of the   file;  if  the file lists  properly,
  3448.     then the direct statement is at the end of the  file.   If the file does not
  3449.     list properly, then the  direct statement is at   the beginning of the  file
  3450.     and has to be removed using a text editor (EDLIN)  before the program can be
  3451.     loaded and run.
  3452.  
  3453.     Do  not attempt to save a BASIC  file after getting the `Direct Statement In
  3454.     File'  error   during loading without listing the program  first;  you  will
  3455.     destroy the file otherwise.  If you wish to  load an uploaded file (a  BASIC
  3456.     program or any other text file) into  a text editor to change the content of
  3457.     the  file,  you  will first have  to first add line feeds to the end of each
  3458.     line  (after  each  carriage return).
  3459.  
  3460.     Finally,  every SYSOP should assume that any uploaded file him that  can  be
  3461.     executed  (i.e.  .BAS,   .COM,   .EXE) has the  capability of destroying all
  3462.     the  files available to the  PC it is executed on.  This may be because  the
  3463.     documentation  is in error,  the  program was executed incorrectly,  or  the
  3464.     program  was designed to be malicious.  It behooves every SYSOP to know what
  3465.     every uploaded file does  in order to protect not only   the RBBS-PC system,
  3466.     but its users.
  3467.  
  3468.     RBBS-PC CPC17-2A                                                Page 221
  3469.  
  3470.     23. DUE WARNING AND SYSOP'S LEGAL LIABILITY
  3471.     -------------------------------------------
  3472.     While no definitive case-law or legislation exists defining  the liabilities
  3473.     of System Operators, every SYSOP should assume that they  are as responsible
  3474.     for their own actions  when running an  electronic bulletin board system  as
  3475.     they would  be for any other  action as a  citizen of the United  States who
  3476.     chooses to  exercise their right  to freedom of  speech.  One of  the unique
  3477.     features of  RBBS-PC is that  users have  to OVERTLY register  themselves --
  3478.     even when  the RBBS-PC  is "open" to  the general public.   This  gives each
  3479.     SYSOP the opportunity to give every user "due notice" and require  each user
  3480.     to actively acknowledge such notice.  For some SYSOPs it is simply the rules
  3481.     of  their board.   For me, the  following is  what I use  as the text  in my
  3482.     NEWUSER file:
  3483.  
  3484.     "Welcome   to   the   world of  RBBS-PC!    Before  continuing  you   should
  3485.     understand your responsibilities as a RBBS-PC user.  Specifically they are:
  3486.  
  3487.     1.   Actively  encourage  and   promote the free  exchange  and   discussion
  3488.     of  information,    ideas  and  opinions,  except  when  the  content  would
  3489.     compromise the national security  of the United States;  violate proprietary
  3490.     rights, personal  privacy,   or   applicable   state/federal/local laws  and
  3491.     regulations  affecting telecommunications; or constitute a crime or libel.
  3492.  
  3493.     2.   Use   your  real  name and fully  disclose   any  personal,  financial,
  3494.     or commercial interest when evaluation any specific product or service.
  3495.  
  3496.     3.   Adhere   to  these rules and notify  me immediately when you   discover
  3497.     any violations of the rules.
  3498.  
  3499.     4.    All of the mail is  readable by the SYSOP and  therefore should not be
  3500.     regarded as private.
  3501.  
  3502.     FURTHER   every  user explicitly acknowledges that all information  obtained
  3503.     from this  RBBS-PC is provided "as is" without warranty of any kind,  either
  3504.     expressed or implied,  including, but  not limited to the implied warranties
  3505.     of merchantability and fitness for a particular  purpose and that the entire
  3506.     risk  of acting on information obtained from this  RBBS-PC,   including  the
  3507.     entire costs  of all necessary remedies,  is with those who choose to act on
  3508.     such  information and  not the operator  of this  RBBS-PC.  Register  if you
  3509.     agree."
  3510.  
  3511.     This won't protect you from prosecution if you allow your RBBS-PC to be used
  3512.     for criminal  activities.   However, it  does serve  to cause  each user  to
  3513.     voluntarily and OVERTLY accept  my "rules" and allows me to  sleep better at
  3514.     night knowing that I have given "due notice."  My own personal philosophy is
  3515.     to actively pursue and prosecute ANY user on my board who I find engaging in
  3516.     what appears to be a violation of the above notice.  Essentially, if you are
  3517.     going to  run an RBBS-PC open  to the general  public as I do,  your board's
  3518.     reputation and standards must be able to withstand public scrutiny.   If you
  3519.     don't feel you  can maintain such standards,  either don't run a  RBBS-PC or
  3520.     run a  very, very private  one (and be  sure to put  all your assets  in the
  3521.     wife's and kid's names).
  3522.  
  3523.     Since I'm not a lawyer, if you want a legal opinion on your liabilities as a
  3524.     SYSOP  your only source  of legal advice  should be an  attorney licensed to
  3525.     practice in your  state.  Just  remember it may not  be the best  advice and
  3526.     that the legal liabilities regarding the operation of bulletin board systems
  3527.     is unclear.
  3528.  
  3529.     RBBS-PC CPC17-2A                                                Page 222
  3530.  
  3531.     24. COMPILING AND LINKING RBBS-PC
  3532.     ---------------------------------
  3533.     RBBS-PC source code is  distributed along with the executable  program RBBS-
  3534.     PC.EXE.  It  is NOT necessary  to recompile or re-link  RBBS-PC in order  to
  3535.     utilize RBBS-PC.   However, some  users may  wish to modify  the source  and
  3536.     recompile it.  This section is intended for those hardy few who choose to do
  3537.     so.   Remember only  what is distributed  is supported  -- anything  else is
  3538.     strictly yours to debug!
  3539.  
  3540.     RBBS-PC's source code is compilable by the IBM BASIC Compiler Version 2.0 as
  3541.     released by IBM and with the IBM updates to it through 11/22/85.  Subsequent
  3542.     patches released by IBM for the  Version 2.0 compiler appear to disable  the
  3543.     compiler to the point  where it can not compile RBBS-PC.   RBBS- PC's source
  3544.     code is compilable by  all of Microsoft's QuickBASIC Compilers -  - versions
  3545.     1.02, 2.01, 3.0, and  4.5.  However Microsoft's QuickBASIC  Compiler version
  3546.     3.0 is the compiler used to generate the .EXE files distributed with RBBS-PC
  3547.     because it  appears to be the most  reliable.  Versions too buggy  to use at
  3548.     all include 1.0, 2.0, and 4.0.
  3549.  
  3550.     24.1 Compiling CONFIG and RBBS-PC
  3551.     ---------------------------------
  3552.     RBBS-PC's .EXE  files  are  distributed  after  having  been  compiled  with
  3553.     QuickBASIC  Version  3.00  compiler that  had  the  DTR  patch described  in
  3554.     Appendix T applied to it. 
  3555.  
  3556.     CONFIG.EXE is generated from  compiling with multiple BASIC source  files --
  3557.     CNFG-VAR.BAS,  CONFIG.BAS, CNFG-SUB.BAS. The output of the multiple compiles
  3558.     (CONFIG.OBJ and CNFG-SUB.OBJ) generate multiple .OBJ input files to the LINK
  3559.     step that create CONFIG.EXE.
  3560.  
  3561.     The QuickBASIC version 3.0 compiler command should be:
  3562.          QB  CONFIG.BAS,/E/O/C:2048/S;
  3563.          QB  CNFG-SUB.BAS,/O;
  3564.  
  3565.     The command for IBM BASIC Compiler version 2.00 should be:
  3566.          BASCOM CONFIG.BAS,,NUL,/E/O/C:2048/N
  3567.          BASCOM CNFG-SUB.BAS,,NUL,/O/N
  3568.  
  3569.     Compiling CONFIG  requires that CNFG-VAR.BAS  be in  the sub-directory  from
  3570.     which they are being compiled.
  3571.  
  3572.     RBBS-PC.EXE is generated from compiling with  multiple BASIC source files --
  3573.     RBBS-VAR.BAS,   RBBS-PC.BAS,   RBBSSUB1.BAS,   RBBSSUB2.BAS,   RBBSSUB3.BAS,
  3574.     RBBSSUB4.BAS, and RBBSSUB5.BAS.
  3575.  
  3576.     The   output   of   the  multiple   compiles   (RBBS-PC.OBJ,   RBBSSUB1.OBJ,
  3577.     RBBSSUB2.OBJ,   RBBSSUB3.OBJ,   RBBSSUB4.OBJ,  and   RBBSSUB5.OBJ)  generate
  3578.     multiple .OBJ input files to the LINK  step that, along with some other .OBJ
  3579.     files, create RBBS-PC.EXE.
  3580.  
  3581.     The command for QuickBASIC version 3.00 should be:
  3582.          QB  RBBS-PC.BAS,/C:4096/O;     
  3583.          QB  RBBSSUB1.BAS,/X/O; 
  3584.          QB  RBBSSUB2.BAS,/O;
  3585.          QB  RBBSSUB3.BAS,/O;
  3586.          QB  RBBSSUB4.BAS,/O;
  3587.          QB  RBBSSUB5.BAS,/O;
  3588.  
  3589.     QB 4.5 can be used to compile RBBS-PC as follows:
  3590.  
  3591.     RBBS-PC CPC17-2A                                                Page 223
  3592.  
  3593.          BC  RBBS-PC.BAS,/C:4096/O/MBF;    
  3594.          BC  RBBSSUB1.BAS,/X/O/MBF;
  3595.          BC  RBBSSUB2.BAS,/O/MBF;
  3596.          BC  RBBSSUB3.BAS,/O/MBF;
  3597.          BC  RBBSSUB4.BAS,/O/MBF;
  3598.          BC  RBBSSUB5.BAS,/O/MBF;
  3599.                             
  3600.     The command for the IBM BASIC Compiler version 2.00 should be:
  3601.          BASCOM  RBBS-PC.BAS,,NUL,/C:4096/O/N
  3602.          BASCOM  RBBSSUB1.BAS,,NUL,/X/O
  3603.          BASCOM  RBBSSUB2.BAS,,NUL,/O
  3604.          BASCOM  RBBSSUB3.BAS,,NUL,/O
  3605.          BASCOM  RBBSSUB4.BAS,,NUL,/O
  3606.          BASCOM  RBBSSUB5.BAS,,NUL,/O
  3607.  
  3608.     Compiling  RBBS-PC requires that  RBBS-VAR.BAS be in  the sub-directory from
  3609.     which they  are being  compiled.   For debugging  purposes, RBBS-PC.BAS  and
  3610.     RBBSSUB2.BAS through  RBBSSUB5.BAS can  be compiled  with the  /E option  in
  3611.     addition to those shown.
  3612.  
  3613.     The BASIC compiler library routines  have a NASTY bug in them for  those who
  3614.     would like to  allow KERMIT protocol  to be  used, exit to  DOS as a  remote
  3615.     SYSOP, or exit to a "door."
  3616.  
  3617.     If you  re-compile RBBS-PC and desire to utilize  any of these three RBBS-PC
  3618.     functions, YOU MUST patch your compiler's libraries as described in Appendix
  3619.     T.!
  3620.  
  3621.     RBBS-PC CPC17-2A                                                Page 224
  3622.  
  3623.     24.2 LINKing CONFIG 
  3624.     -------------------
  3625.     CONFIG.OBJ can be LINKed to produce CONFIG.EXE with the command
  3626.  
  3627.          LINK CONFIG+CNFG-SUB+RBBSUTIL+FOSSCOMM+xxxCOM,CONFIG.EXE,,;
  3628.  
  3629.     assuming that all the required files are on the default drive. 
  3630.  
  3631.     NOTE: xxxCOM must be replaced with GWCOM  if using the QuickBASIC compiler  
  3632.         and IBMCOM if using the IBM Version 2.0 compiler.
  3633.  
  3634.     24.3 LINKing RBBS-PC
  3635.     --------------------
  3636.     RBBS-PC.OBJ can be  LINKed to  produce RBBS-PC.EXE with  the LINKer  command
  3637.     (all  on  one  line) --  LINK  @LINKLST3.DAT,  where  the file  LINKLST3.DAT
  3638.     contains the following:
  3639.  
  3640.  
  3641.     RBBS-PC+
  3642.     RBBSSUB1+
  3643.     RBBSSUB2+
  3644.     RBBSSUB3+
  3645.     RBBSSUB4+
  3646.     RBBSSUB5+
  3647.     xxxCOM+
  3648.     QBARCV4+
  3649.     ANSI17+
  3650.     XMODEM+
  3651.     RBBSML+
  3652.     BDRIVEC2+
  3653.     PC-NET+
  3654.     10-NET+
  3655.     RBBSUTIL+
  3656.     RBBSDV+
  3657.     GIVEBK31+
  3658.     FOSSCOMM+
  3659.     BASNOV+
  3660.     RBBSHS,
  3661.     ,
  3662.     ,
  3663.     BCOM30.LIB /STACK:2048
  3664.  
  3665.     NOTE: xxxCOM must be replaced with GWCOM if  using the QuickBASIC compiler  
  3666.         and IBMCOM if using  the IBM Version 2.0 compiler.  New with 17.2A      
  3667.     are RBBSHS.OBJ, BASNOV.OBJ and QBARCV4.OBJ. 
  3668.  
  3669.     For QB4.5, there is no xxxCOM.OBJ and the LIB used in BCOM45.
  3670.  
  3671.     The above LINK command assumes that all the necessary .OBJ files are on the 
  3672.     default drive and the necessary .LIB files are on the "C" drive.
  3673.  
  3674.     RBBS-PC CPC17-2A                                                Page 225
  3675.  
  3676.     25. LIMITED LICENSE
  3677.     -------------------
  3678.     The  RBBS-PC  software is copyrighted but  A LIMITED LICENSE IS  GRANTED and
  3679.     each user is free to use and share it under the following conditions:
  3680.  
  3681.     1. You may NOT distribute RBBS-PC in modified form.
  3682.     2. You may NOT charge a fee for RBBS-PC itself, and
  3683.     3. You MUST retain all references to the copyright and authors.
  3684.  
  3685.     Please  distribute the original version (or update thereof) of  the program.
  3686.      If  you have changes please distribute them using the conventions described
  3687.     in section 1.4.    This  is necessary so that   future   revisions  can   be
  3688.     easily added to the system without requiring the  entire  program.
  3689.  
  3690.     Please do NOT resequence the program.    All revisions will be as files that
  3691.     replace  the base program  or update thereof  and the existing  line numbers
  3692.     will be referenced when describing new fixes and enhancements.
  3693.  
  3694.     RBBS-PC CPC17-2A                                                Page 226
  3695.  
  3696.     26. LIMITED WARRANTY
  3697.     --------------------
  3698.     The  RBBS-PC  program is  provided  "as is"  without warranty  of  any kind,
  3699.     either  expressed  or implied,  including   but not limited to the   implied
  3700.     warranties  of merchantability and fitness for a particular  purpose.    The
  3701.     entire  risk as to the quality and performance of the program  is  with  the
  3702.     user,  and   should  the program  prove defective, the user   and  not   the
  3703.     authors will  assume the entire cost of all necessary remedies.  None of the
  3704.     authors  warrant that the functions contained  in the program will meet  any
  3705.     users'   requirements  or  that  the  operation  of  the  program  will   be
  3706.     uninterrupted or error-free.   In any  case,  each author's entire liability
  3707.     will  be  limited  to the total amount of money  the  individual  user  paid
  3708.     directly and explicitly to each author for the use of RBBS-PC.
  3709.  
  3710.     RBBS-PC CPC17-2A                                                Page 227
  3711.  
  3712.     27. UPGRADING TO CPC17-2A
  3713.     -------------------------
  3714.     When upgrading  to CPC17-2A  from earlier  versions of  RBBS-PC, follow  the
  3715.     following steps:
  3716.  
  3717.     1.   Do  not  destroy or  overwrite  your old  files.     You  may run  into
  3718.     difficulties  and have to fall back  to the old version.   Especially keep a
  3719.     backup of your current USERS, MESSAGES,  configuration "DEF" files, and your
  3720.     RBBS-PC.EXE and CONFIG.EXE files.
  3721.  
  3722.     2.  Start by trying  to get the new version just to run  equivalently to the
  3723.     old without  implementing new features.    Implement  new features one  at a
  3724.     time.   Do not try to implement everything new at once.
  3725.  
  3726.     3.  The file that almost always changes between  non-maintenance versions is
  3727.     a  configuration "DEF"  file.     A utility  program called  RECONFIG.EXE is
  3728.     provided that converts all versions from 14.1D on to the latest.   This will
  3729.     save you the trouble of manually re-entering the parameters.  If you do  not
  3730.     have RECONFIG  you should  print out all  the options  you selected  on your
  3731.     current RBBSxPC.DEF file.
  3732.  
  3733.     4.  CONFIG.EXE has an option to review the parameters changed since the last
  3734.     version.   You should always run this to see what is new and possibly change
  3735.     the values.   If you do not have RECONFIG, you generally need to delete your
  3736.     current RBBSxPC.DEF  file  and manually  enter the  parameters.   Sometimes,
  3737.     however,  the  same parameters  will  be in  a  different place  in  the new
  3738.     configuration.  If you are upgrading from several versions back, there is no
  3739.     simple way of knowing what all is new.
  3740.  
  3741.     5.   The MESSAGES  and USERS files  are the two  that are  most important to
  3742.     continue to be able  to use.  RBBS-PC 17.2A  is compatible on both  accounts
  3743.     with files  at least back through version 14.   However, there is a critical
  3744.     parameter  to set in CONFIG:   the minimum security to  auto-add a user to a
  3745.     conference.  This applies to conferences  not sub-boards, i.e. that have  no
  3746.     configuration DEF file.   Go into   CONFIG, conference mode, and  then check
  3747.     this value.  No one will be able to join the conference if their security is
  3748.     below this  number, even the sysop.   Reset this  value so that  the desired
  3749.     callers can join the conference.
  3750.  
  3751.     6.  RBBS is written to be upward compatible, preserving all the functions of
  3752.     earlier  versions.    However, you  may  have  to make  changes  to  the new
  3753.     configuration  to make it  run equivalently.  For  version 17.2A, the things
  3754.     you especially need to consider are:
  3755.  
  3756.      (a)  the minimum security to read and kill all messages.  If this is set to
  3757.           0, everybody can read everyone else's mail!
  3758.  
  3759.      (b)  RBBS formerly supported  the "arc" format  exclusively.  Now "zip"  is
  3760.           its default, but it  can be set up for any.  Review the parameters for
  3761.           default extension and archiving command.
  3762.  
  3763.      (c)  Your personal directory may not work  unless you include a drive/path.
  3764.           Re-enter the parameter value in config.
  3765.  
  3766.     7.    If you  are  upgrading from  a version  prior  to 17.1x,  consider the
  3767.     possibility  that  the  PASSWRDS file  may  have  a  different format,  that
  3768.     external protocols are controlled by an external table (PROTO.DEF), that the
  3769.     doors interface  may be different, and the control  for an timed even may be
  3770.     different.   Read the pertinent sections in config on this topics if you are
  3771.     using them.
  3772.  
  3773.     RBBS-PC CPC17-2A                                                Page 228
  3774.  
  3775.  
  3776.     8.  Use  the new text files,  especially the menus and  help files.  If  you
  3777.     have customized  versions of  these, start  with the  distributed files  and
  3778.     change them.
  3779.  
  3780.     9.  Last, review the  documentation on the major areas of enhancements.  The
  3781.     major changes in 17.2A are:
  3782.  
  3783.      a.   use of shelling triggered by the presence of BAT files to test uploads
  3784.           for  integrity, convert  uploads to  a different  format, and  support
  3785.           viewing  of  text  files  inside  ZIP  files,  and  verbose  list  any
  3786.           compressed format,
  3787.  
  3788.      b.   greatly  enhanced macros and  questionnaires, including new  data base
  3789.           functions,
  3790.  
  3791.      c.   enhanced doors interface, including an external control file for doors
  3792.           (DOORS.DEF)  as well  as the ability  of a  door to request  that RBBS
  3793.           change the user  record (DOUTx.DEF), pass any  information via command
  3794.           line or a file to  a door, and for a door to return  information to be
  3795.           displayed to the caller
  3796.  
  3797.      d.   the message files can  be configured to have minimum size  to hold the
  3798.           messages and let grow in size as new messages are added,
  3799.  
  3800.      e.   conferences  and subboards can  be configured to  automatically change
  3801.           the user's security to match the logon security,
  3802.  
  3803.      f.   message  quoting,  allowing  the option  to  type  in be  the  same on
  3804.           different  submenus  and  be a  single  keystroke,  speech synthesizer
  3805.           support  for  visually  impaired  sysops,  making uploads  immediately
  3806.           shareable  on  Novell  networks, an  easy  way  to  give a  conference
  3807.           moderator  access  to all  mail without  having  to make  them sysops,
  3808.           chained FMS directories, and more.
  3809.  
  3810.     PLEASE NOTE!!!!! ----  CPC17-2A has a new  CONFIG (version 17-2A) that  will
  3811.     create a different DEF file than prior versions! 
  3812.  
  3813.     RBBS-PC CPC17-2A                                                Page 229
  3814.  
  3815.     28. PROPOSED AGENDA FOR A NATIONAL SYSOP CONFERENCE
  3816.     ---------------------------------------------------
  3817.     As  PC's (IBM's and  others)   become   more  common  in homes  and offices,
  3818.     their use as vehicles  for  information  exchange continues to grow -- as so
  3819.     eminently attested by  the astounding growth of RBBS-PC  itself!  A national
  3820.     meeting   of  SYSOPs   could foster  this   growth in information  exchange;
  3821.     assist    in  focusing on  the  issues  (regulatory and    otherwise)   that
  3822.     foster/inhibit   this growth;   and act  as a  forum for   new   ideas.    A
  3823.     national   meeting,  perhaps   sponsored by  the Capital PC   User  Group or
  3824.     even a consortium of other not-for-profit PC user groups could be held .
  3825.     SYSOPs  are  not only in  the big corporations but also in the  millions  of
  3826.     small  businesses,   non-profit  associations,  educational  institutions in
  3827.     which the RBBS-PC concept has  found  a  home.   They are often the decision
  3828.     influencers in their  organizations or area  -- as U.S. Robotics  discovered
  3829.     when they introduced  their Courier 2400 baud  modem so successfully. As   I
  3830.     expect most  who would attend would  be paying their own   way,   the  first
  3831.     conference  would   probably  consist of  that  small   "band  of  brothers"
  3832.     who   have   set    up boards  out  of   the   intensity   of    their   own
  3833.     commitment.  
  3834.  
  3835.     My   own  vision  of such a  conference is sort  of  a   1980's   electronic
  3836.     "Woodstock"  --  if  for no other  reason  because   of  the  very   "volks"
  3837.     nature  of  SYSOPs.     It has  been  a long  time  since there  has  been a
  3838.     conference "of the people, by the people, and for the people."
  3839.  
  3840.     What follows is a hypothetical agenda of what might be of interest at such a
  3841.     conference.   The agenda  consists of  a "technical"  and a  "non-technical"
  3842.     (management?) set of sessions as follows:
  3843.  
  3844.                      "technical sessions"         "non-technical sessions"
  3845.  
  3846.      8:30 - 10:00    RBBS-PC Record Layouts       How to Copyright Software --
  3847.                      (CALLERS, USERS, and         its protection and penalties
  3848.                       MESSAGES files)             for violation of copyrights.
  3849.  
  3850.     10:30 - 12:00    Multi-Port RBBS-PC           1986 Computer Privacy Act and
  3851.                      Systems-- actual             "computer trespass" laws at
  3852.                      experiences.                 the State level.
  3853.  
  3854.     12:00 - 1:30     Luncheon with a nationally known guest
  3855.                              speaker (any suggestions?) 
  3856.  
  3857.      1:30 - 3:00     RBBS-PC "doors" and          Business Applications of 
  3858.                      "doorware" explained.        Bulletin Board Systems
  3859.  
  3860.      3:30 - 5:00     Modems -- beyond 2400        The use of RBBS-PC in local,
  3861.                      baud.                        State, and Federal agencies.
  3862.  
  3863.      5:00 - 6:30           CONNECT TIME! -- Vendor Presentations
  3864.                                    and Receptions
  3865.  
  3866.     If  you  are with  a manufacturer or organization that might be   interested
  3867.     in   sponsoring  such  a meeting,   work with  your organization to  make it
  3868.     happen!  If  in  the  normal course of  your business  contacts  you  see  a
  3869.     potential  sponsor  of  such  a conference,  persuade  them  to   look  into
  3870.     being a sponsor.   I would be glad to  talk with anyone about going  forward
  3871.     with this project.
  3872.  
  3873.     If  you are interested in participating, write me at the following address:
  3874.  
  3875.     RBBS-PC CPC17-2A                                                Page 230
  3876.  
  3877.              Tom Mack
  3878.              National SYSOP Conference
  3879.              39 Cranbury Drive
  3880.              Trumbull, Connecticut 06611
  3881.     Please indicate 
  3882.  
  3883.               1.  Which four sessions you would attend (in order
  3884.                   of preference).
  3885.  
  3886.               2.  Any additional sessions you would be interested in.
  3887.  
  3888.               3.  Who would you  want as a guest  speaker at the                
  3889.     luncheon.
  3890.               4.  Where you would like such a conference held
  3891.                   from among the following five locations:
  3892.  
  3893.                            a.) Boston, Mass.
  3894.                            b.) Chicago, Ill.
  3895.                            c.) Houston, Texas
  3896.                            d.) San Francisco, Calif.
  3897.                            e.) Washington, D.C.
  3898.  
  3899.               5.  Your mailing address.
  3900.  
  3901.               6.  Telephone numbers you can be reached at (both voice
  3902.                   and data).
  3903.  
  3904.               7.  And if you would be willing  to be a "worker" as              
  3905.                   well as an attendee -- i.e. stuff envelopes, keep
  3906.                   the mailing list, make hotel arrangements, etc.
  3907.  
  3908.     My greatest fear  is not that there  will be fifty of  us -- but that  there
  3909.     will be 2,000 of us!  Whatever happens, it should be fun. 
  3910.  
  3911.     RBBS-PC CPC17-2A                                                Page 231
  3912.  
  3913.     29.  RBBS-PC, THE LARGEST SOFTWARE HOUSE IN THE WORLD
  3914.     --------------------------------------------------------
  3915.     RBBS-PC'S "Userware" concept is founded on the principle stated in section 1
  3916.     --  "software which  is shared  becomes  better than  it was."    Relying on
  3917.     Federal copyright protection,  it is  my firm belief  that RBBS-PC's  source
  3918.     code can  be distributed without  the risk of  "loss of ownership"  (i.e. it
  3919.     becoming "public domain").   In fact I think  that all software  (commercial
  3920.     and  non-commercial) should be distributed as both compiled/executable files
  3921.     and with their source code.   With one exception, RBBS-PC's copyrights  have
  3922.     never been violated -- this is due more to the fact that RBBS-PC enthusiasts
  3923.     are ever-vigilant  of RBBS-PC's copyrights  rather than due  to any lack  of
  3924.     attempts to  "sell"  RBBS-PC  or  RBBS-PC look-alikes  to  the  unsuspecting
  3925.     public.
  3926.  
  3927.     Incorporating these  new features and  ideas into each new  release of RBBS-
  3928.     PC, making sure  that upward compatibility  with earlier version of  RBBS-PC
  3929.     exists, as  well as maintaining RBBS-PC's  copyright, are all  things that I
  3930.     accept the responsibility  for.   However, it is  RBBS-PC's "support  staff"
  3931.     (i.e.  all  those who  enhance  RBBS-PC  and share  such  enhancements) that
  3932.     continues to make RBBS-PC a unique experiment in PC software.
  3933.  
  3934.     No one should feel that the possibilities  for RBBS-PC have even begun to be
  3935.     exhausted.  In  fact, I am absolutely certain  that even as this  is written
  3936.     innovative enhancements are  being created for  RBBS-PC that I haven't  even
  3937.     mentioned.   It is  my sincerest hope  that if RBBS-PC  continues to succeed
  3938.     within  the IBM  PC  industry  in  becoming the  "bulletin-board  standard,"
  3939.     software vendors will begin examining the  reasons for RBBS-PC's success and
  3940.     come to understand that:
  3941.  
  3942.     1.  The best form of software support is user support;
  3943.  
  3944.     2.  The best source for software enhancements are from it's users;
  3945.  
  3946.     3.  The best software continually adopts itself to users needs; and
  3947.  
  3948.     4.  The best way to minimize software development is to distribute
  3949.         source code;
  3950.  
  3951.     Each RBBS-PC  system operator  has the  opportunity to  affect what  RBBS-PC
  3952.     becomes in the  future.  Many already  have.  RBBS-PC continues  to grow and
  3953.     expand because hundreds (and  quite possibly thousands) of SYSOPs  spend the
  3954.     time and trouble not only to modify RBBS-PC to meet their needs, but also to
  3955.     share these modifications with others.  I do  not know of any other software
  3956.     for the IBM PC that has such a vast number of programmers supporting it.  In
  3957.     section 1.3, I name more than 70 such individuals and acknowledge that there
  3958.     are a lot more!  With the  structured design RBBS- PC's source code that the
  3959.     new BASIC compilers allowed, even more  RBBS-PC system operators are invited
  3960.     to contribute.  Take the time!  Make the difference!
  3961.  
  3962.     RBBS-PC CPC17-2A                                                Page 232
  3963.  
  3964.     APPENDIX A -- RBBS-PC Record Formats
  3965.     ------------------------------------
  3966.     This  appendix  is  intended to document the record formats of some  of  the
  3967.     more significant records used within RBBS-PC.   As such, it is intended more
  3968.     as  a  "programmers'  guide" for those who wish to write  RBBS-PC  utilities
  3969.     rather than as  "user documentation."  No record format is "sacrosanct"  and
  3970.     any of them  may be changed  in  future   releases.   However  such  changes
  3971.     are  not  made  capriciously  and,  when  they are made,  are accompanied by
  3972.     some   utility  program  that  will  allow  the old files to be  reformatted
  3973.     into  the  new  format.
  3974.  
  3975.     The MESSAGES file contains the messages that have been  left on RBBS-PC.  It
  3976.     is  a random file with  128-byte records.  The first  record of the MESSAGES
  3977.     file  acts  as RBBS-PC's  "checkpoint"  record.    The  records  immediately
  3978.     following this  first record are  the RBBS-PC "node"  records.   Each "node"
  3979.     record represents the activity/options associated with a  particular copy of
  3980.     RBBS-PC ("node").  There  can be up to thirty-six copies  of RBBS-PC running
  3981.     simultaneously sharing the same set of static files.  Therefore there can be
  3982.     up to thirty-six "node" records following the "checkpoint" record.  
  3983.  
  3984.     The MESSAGES file has the following logical format:
  3985.  
  3986.                +----------------------------------------------+
  3987.     Record #1  |  RBBS-PC "checkpoint" record                 |
  3988.                +----------------------------------------------+
  3989.     Record #2  |  RBBS-PC "node" record for node # 1          |
  3990.                |                                              |
  3991.                |            up to                             |
  3992.                |                                              |
  3993.                |  RBBS-PC "node" record for node # 9          |
  3994.                |  RBBS-PC "node" record for node # 0          |
  3995.                |  RBBS-PC "node" record for node "A"          |
  3996.                |                                              |
  3997.                |            up to                             |
  3998.                |  RBBS-PC "node" record for node "Z"          |
  3999.                |                                              |
  4000.                +----------------------------------------------+
  4001.                |  First Record in Message portion of file     |
  4002.                +----------------------------------------------+
  4003.                |                                              |
  4004.                \  Message records that have been used         \
  4005.                \                                              \ 
  4006.                |                                              |
  4007.                +----------------------------------------------+
  4008.                |  Record available for next message           |
  4009.                +----------------------------------------------+
  4010.                |  Last record available in MESSAGES file      |
  4011.                +----------------------------------------------+
  4012.  
  4013.     RBBS-PC CPC17-2A                                                Page 233
  4014.  
  4015.     The FIRST RECORD  of the "MESSAGES" file  acts as a "checkpoint"  record for
  4016.     all the multiple RBBS-PC's that may be sharing the MESSAGES and USERS files.
  4017.     It contains information   critical  to   maintaining the integrity  of these
  4018.     two  files.  The  layout of RBBS-PC   Message   File  Record  Number 1 is as
  4019.     follows:
  4020.  
  4021.     Position Length           Description
  4022.  
  4023.       1 -  8     8   Number assigned to the last message entered
  4024.       9 - 10     2   Security level required to be auto-added to a conference
  4025.      11 - 20    10   Current caller number
  4026.      21 - 56    36   --- RESERVED FOR FUTURE USE ----
  4027.      57 - 61     5   Count of the number of USER records used
  4028.      62 - 67     6   --- RESERVED FOR FUTURE USE ----
  4029.      68 - 74     7   Record Number where "messages" portion of the 
  4030.                            MESSAGES file begins
  4031.      75 - 81     7   Record Number of the next available record in the 
  4032.                            MESSAGES file where the next message may be written
  4033.      82 - 88     7   Record Number of the last record in the MESSAGES file
  4034.      89 - 95     7   Maximum number of messages allowed in the MESSAGES file
  4035.      96 -126    31   --- RESERVED FOR FUTURE USE ----
  4036.     127 -128     2   Maximum number of RBBS-PC's sharing this MESSAGES file
  4037.  
  4038.     As a programming  reference, line numbers 1900 and 23000 of the BASIC source
  4039.     code for RBBS-PC.BAS contains the code for reading this "checkpoint" record.
  4040.  
  4041.     RBBS-PC CPC17-2A                                                Page 234
  4042.  
  4043.     Following the first  record of the MESSAGES  file are from one  to 36 "node"
  4044.     records.  Each "node" record contains information  critical  to  the running
  4045.     of  that copy of RBBS-PC  associated with that  "node".  The  layout of each
  4046.     RBBS-PC  "node" record is as follows:
  4047.  
  4048.     Position Length          Description
  4049.  
  4050.       1 - 31    31  Name of last person on this copy of RBBS-PC
  4051.      32 - 33     2  SYSOP available indicator (true or false)
  4052.      34 - 35     2  SYSOP annoy indicator (true or false)
  4053.      36 - 37     2  SYSOP is to be on next indicator (true or false)
  4054.      38 - 39     2  Line printer available indicator (true or false)
  4055.      40 - 41     2  Door's availability indicator (true or false)
  4056.      42 - 43     2  Eight bit transmission indicator (true or false)
  4057.      44 - 45     2  Caller's baud rate indicator: -1 =   300 baud
  4058.                                                   -2 =   450 baud
  4059.                                                   -3 =  1200 baud
  4060.                                                   -4 =  2400 baud
  4061.                                                   -5 =  4800 baud
  4062.                                                   -6 =  9600 baud
  4063.                                                   -7 = 19200 baud
  4064.      46 - 47     2  Upper case only indicator (true or false)
  4065.      48 - 51     4  Number of bytes transferred (from external protocols)
  4066.        52        1  Batch transfer indicator (not zero = batch)
  4067.      53 - 54     2  Graphics indicator (0 = text, 1 = full ASCII, 2 = color)
  4068.      55 - 56     2  SYSOP indicator (-1 = SYSOP)
  4069.         57       1  Activity indicator (I=inactive, A=active)
  4070.      58 - 59     2  SNOOP on indicator (true or false)
  4071.      60 - 64     5  Baud that RBBS-PC talks to the modem at (single precision)
  4072.      65 - 67     3  Time user logged onto the system (HH:MM:SS)
  4073.      68 - 71     4  --- RESERVED FOR FUTURE USE ---
  4074.      72 - 73     2  Private door indicator (true or false)
  4075.        74        1  Type of transfer to external program:
  4076.                                  0 = none
  4077.                                  1 = download a file
  4078.                                  2 = upload a file
  4079.                                  3 = external registration program
  4080.        75        1  First letter of file transfer protocol
  4081.        76        1  --- RESERVED FOR FUTURE USE ----
  4082.      77 - 78     2  Last date, MM-DD-YY, that RBBS-PC exited to DOS (packed)
  4083.      79 - 85     7  --- RESERVED FOR FUTURE USE ----
  4084.      86 - 90     5  Last time, HH:MM, that RBBS-PC exited to DOS
  4085.      91 - 92     2  Reliable mode indicator (true or false)
  4086.      93 - 116   24  Work area that normally contains caller's City and State,
  4087.                     but when temporarily exiting RBBS-PC used as:
  4088.                     Position Length          Description
  4089.                      93 -100     8  Programmable user interface file name
  4090.                     101 -102     2  Local user indicator (true using local PC)
  4091.                     103 -104     2  Local user mode (true if using COM0)
  4092.                     105 -112     8  Name of current "conference" or "sub-board"
  4093.                     113 -116     4  --- UNUSED ----
  4094.     117 -118     2  Subsystem index of last subsystem user was in.
  4095.     119 -124     6  Month, day, and year, MMDDYY, exited to external protocol
  4096.     125 -128     4  Hour and minute, HHMM, exited to external protocol
  4097.  
  4098.     As a programming reference and in order to see how these fields are set/used
  4099.     in the node  records, review the following  line numbers in RBBS-  PC.BAS --
  4100.     150, 200,  400, 420,  842, and  13555.   In addition,  review the  following
  4101.     subroutines as well:
  4102.  
  4103.     RBBS-PC CPC17-2A                                                Page 235
  4104.  
  4105.                   Source Code     Subroutine
  4106.                  RBBSSUB2.BAS ---- WHOSON
  4107.                  RBBSSUB3.BAS ---- FINDFUNC
  4108.                                    SAVEPROF
  4109.                                    READPROF
  4110.                  RBBSSUB4.BAS ---- TIMEDOUT
  4111.  
  4112.     A message within the messages file consists  of a MESSAGE HEADER followed by
  4113.     the text of the message.    The RBBS-PC Message File "message header" record
  4114.     layout is as follows:
  4115.  
  4116.     Position Length        Description
  4117.  
  4118.         1        1  Contains an "*" for read-only messages, blank otherwise
  4119.       2 -  5     4  Message number of this message
  4120.       6 - 36    31  The name of the person the message is from
  4121.      37 - 58    22  The name of the person to whom the message is sent
  4122.      59 - 66     8  Time of day that the message was sent (HH:MM:SS)
  4123.      67 - 67     1  ---- RESERVED FOR FUTURE USE ----
  4124.      68 - 75     8  Date the message was sent (MM-DD-YY)
  4125.      76 -100    25  Subject of the message
  4126.     101 -115    15  Password for the message (if any)
  4127.     116 -116     1  "Active" message indicator = hex 225
  4128.                     "Killed" message indicator = hex 226
  4129.     117 -120     4  Number of 128-byte records for this message --
  4130.                         including the the "message header" record.
  4131.     121 -122     2 Minimum security level to read message
  4132.     123 -125     3 Date (packed) the message was last read (MM/DD/YY)
  4133.     126 -128     3 Time (packed) the message was last read (HH:MM:SS)
  4134.  
  4135.     As a  programming reference, review lines 3405, 3460,  3530, and 8076 of the
  4136.     BASIC source code  for RBBS-PC.BAS to see  how these fields  are set.   Each
  4137.     record  following the MESSAGE HEADER record  is a MESSAGE TEXT  record   and
  4138.     consists  of  128 characters.    Each  of these   128-byte   message   text"
  4139.     records contains the message text.   The end  of each line in the message is
  4140.     followed  by  an  RBBS-PC  "end-of-line"  indicator which  is  equal  to  an
  4141.     ASCII  227.   This allows  RBBS-PC  to "pack"  multiple message  lines  in a
  4142.     single 128-byte record.
  4143.  
  4144.     RBBS-PC CPC17-2A                                                Page 236
  4145.  
  4146.     Information unique to each  person  who   logs on is contained in the  USERS
  4147.     file (a random file of 128-byte records).  Each records is as follows:
  4148.  
  4149.     Position Length           Description
  4150.       1 - 31    31  Users first and last name (separated by a blank).
  4151.      32 - 46    15  Users password for logon.
  4152.      47 - 48     2  Users security level (permanent).
  4153.      49 - 62    14  Users logon options (see detail breakdown below).
  4154.      63 - 86    24  City and state from which the user is calling.
  4155.      87 - 89     3  ---- RESERVED FOR FUTURE USE ----
  4156.      90 - 93     4  Number of files downloaded today
  4157.      94 - 97     4  Number of bytes downloaded today
  4158.      98 -101     4  Number of bytes downloaded (ever).
  4159.     102 -105     4  Number of bytes uploaded (ever).
  4160.     106 -119    14  Date and time the user was last on (MM-DD-YY HH:MM).
  4161.     120 -122     3  Date the user last listed a directory.
  4162.     123 -124     2  Number of files downloaded (ever).
  4163.     125 -126     2  Number of files uploaded (ever).
  4164.     127 -128     2  Elapsed time the user was on for day of last access.
  4165.  
  4166.     Line  9400 of the BASIC source code for   RBBS- PC.BAS contains the code for
  4167.     opening this  file.  The user's logon options,  positions 49 through 62, are
  4168.     utilized as follows:
  4169.  
  4170.     Position Length           Description
  4171.      49 - 50     2   Number of times the user has logged on
  4172.      51 - 52     2   Last message number read by the user
  4173.         53       1   Protocol Preference (blank if none, otherwise letter)
  4174.         54       1   Graphics Preference (see meaning below)
  4175.      55 - 56     2   Margin length for this users messages
  4176.      57 - 58     2   Bit Flag -- this 16-bit field is denoted by bit 0 being the
  4177.     least  significant  (i.e.  right-most  bit)  and   bit  15  being  the  most
  4178.     significant (i.e.  left-most bit).   These  "bit flags"  have the  following
  4179.     meanings (0=off, 1=on):
  4180.  
  4181.                            BIT    Definition (what ON means) 
  4182.                             0     Bell prompts
  4183.                             1     "Expert" mode
  4184.                             2     Nulls
  4185.                             3     Upper case only
  4186.                             4     Line feeds
  4187.                             5     Skip old bulletins
  4188.                             6     Check new files on logon
  4189.                             7     Use autodownload
  4190.                             8     Required questionnaire answered
  4191.                             9     Mail Waiting
  4192.                            10     Highlighting enabled
  4193.                            11     "TurboKey" enabled
  4194.                           12-15   RESERVED FOR FUTURE USE
  4195.      59 - 60     2   Date subscription began
  4196.         61       1   Page length to use for this users terminal
  4197.         62       1  ------- RESERVED FOR FUTURE USE ---------
  4198.                 ---
  4199.                 14
  4200.  
  4201.     The meaning of the graphics preference byte  depends on the numeric value it
  4202.     has.   The caller can specify, for text files, no graphics, ascii  graphics,
  4203.     or  ansi color graphics;   then the color, and  then whether normal or bold.
  4204.     For example, if graphics perference for text files is  color, and preference
  4205.     for normal text is light yellow,  graphics preference stored is 38.   Colors
  4206.  
  4207.     RBBS-PC CPC17-2A                                                Page 237
  4208.  
  4209.     are Red, Green, Yellow, Blue, Purple, Cyan, and White. 
  4210.  
  4211.                              normal                  bold 
  4212.        graphics\color  R  G  Y  B  P  C  W    R  G  Y  B  P  C  W 
  4213.         none ......   30 33 36 39 42 45 48 | 51 54 57 60 63 66 69 
  4214.        ascii ......   31 34 37 40 43 46 49 | 52 55 58 61 64 67 70 
  4215.         ansi ......   32 35 38 41 44 47 50 | 53 56 59 62 65 68 71 
  4216.      
  4217.  
  4218.     RBBS-PC CPC17-2A                                                Page 238
  4219.  
  4220.     APPENDIX B -- RBBS-PC in a DESQview Environment
  4221.     -----------------------------------------------
  4222.     Before you continue,  make certain you  have read and thoroughly  understand
  4223.     the instruction manual provided with your copy of DESQview.
  4224.  
  4225.     1.  Modifications to DOS CONFIG.SYS and RBBS-PC batch files:
  4226.     ------------------------------------------------------------
  4227.     The first step in using DESQview with  RBBS-PC is setting up your CONFIG.SYS
  4228.     file.  Files=25 is  probably the most critical value.   This value tells DOS
  4229.     how  many files may  be open at  the same time.   This value  may need to be
  4230.     increased if you intend to run more than 2 nodes of RBBS-PC.
  4231.  
  4232.     A typical CONFIG.SYS file should include the following:
  4233.  
  4234.          files=25
  4235.          buffers=25
  4236.          (device=ansi.sys is not required when using DESQview)
  4237.  
  4238.     If  you intend to  use two or  more nodes of  RBBS-PC, a batch  file will be
  4239.     required for each node.  These batch  files will eventually be executed from
  4240.     the DESQview "Open Window" menu and will load each node of RBBS-PC.
  4241.  
  4242.     Contents of RBBS1.BAT                   Contents of RBBS2.BAT
  4243.  
  4244.     if exist rctty1.bat del rctty1.bat      if exist rctty2.bat del rctty2.bat
  4245.     watchdg1 off                            watchdg2 off
  4246.     rbbs-pc.exe 1                           rbbs-pc.exe 2
  4247.     watchdg1 on                             watchdg2 on
  4248.     if exist rctty1.bat rctty1.bat          if exist rctty2.bat rctty2.bat
  4249.     rbbs1.bat                               rbbs2.bat
  4250.  
  4251.     In the above  examples, the program  WATCHDOG is being  used to monitor  for
  4252.     carrier when the SYSOP has dropped into DOS remotely or  a user has opened a
  4253.     Door.   For example, WATCHDG1 monitors COM1 and  WATCHDG2 monitors COM2.  If
  4254.     you aren't using WATCHDOG, leave these commands out of your batch files.
  4255.  
  4256.     2. What to Tell RBBS-PC's "CONFIG" Utility
  4257.     ------------------------------------------
  4258.     When using DESQview  you will need to  change CONFIG parameter 162  that you
  4259.     are running under DESQview.
  4260.  
  4261.     3. Running Multiple Nodes (or copies) of RBBS-PC
  4262.     ------------------------------------------------
  4263.     If you intend to use two or more nodes of RBBS-PC, you will need to change a
  4264.     few additional parameters  with the  RBBS-PC "CONFIG" utility.   When  using
  4265.     multiple nodes of RBBS-PC you will be using a .DEF file for each node.  Each
  4266.     node will have a  .DEF file named RBBS?PC.DEF where ?  represents the number
  4267.     of the node.   These are created by answering YES to  the question "Will you
  4268.     be running  multiple  copies of  RBBS-PC  (YES or  NO)?"  when the  "CONFIG"
  4269.     utility first loads.  If you prefer to use the parameters from your existing
  4270.     single node RBBS-PC.DEF file, you may simply copy that  file to the new .DEF
  4271.     files  before you  run the  "CONFIG" utility.   After  loading the  "CONFIG"
  4272.     utility, it will ask you "To which  copy of RBBS-PC will these options apply
  4273.     (1  to 36)?" and you should  respond with node number  (or copy) you want to
  4274.     configure.
  4275.  
  4276.     Here are the parameters that will have to  be changed for each node of RBBS-
  4277.     PC you intend to use.  This example is for a system with two nodes.
  4278.  
  4279.                                   Node DEF file--> RBBS1PC.DEF    RBBS2PC.DEF
  4280.  
  4281.     RBBS-PC CPC17-2A                                                Page 239
  4282.  
  4283.     Default Configuration Parameters               Parameters     Parameters
  4284.     --------------------------------               -----------    -----------
  4285.     Communications port to be used by RBBS-PC ---- COM1           COM2
  4286.     File RBBS builds dynamically to open a 'door'- D:RCTTY1.BAT   D:RCTTY2.BAT 
  4287.     When a 'door' closes, file to re-invoke RBBS - D:RBBS1.BAT    D:RBBS2.BAT
  4288.     Maximum number of concurrent RBBS-PC's  ------- 2              2
  4289.  
  4290.     These are  in CONFIG  as parameter  221, parameter  103, parameter  104, and
  4291.     parameter 161 (respectively).  Please note that the preceding parameters are
  4292.     located on different pages of the "CONFIG" utility.
  4293.  
  4294.     4. DESQview Setup Default Settings
  4295.     ----------------------------------
  4296.     The first step in setting up DESQview for use with RBBS-PC is specifying the
  4297.     default settings for DESQview.  DESQview has a program called SETUP.EXE that
  4298.     you should  run.   After  the  SETUP program  loads,  press RETURN  for  the
  4299.     Advanced Setup Procedure followed by  a "P" for Performance defaults.   Here
  4300.     is an example of the settings you should use.
  4301.  
  4302.           Advanced Setup: Performance
  4303.              Task Processing Time (clock ticks)
  4304.                       Foreground:    4           <-----
  4305.                       Background:    3           <-----
  4306.              Memory Usage (in K bytes)
  4307.                   DESQview Scripts:     1
  4308.                   Playback Scripts:     1
  4309.                   Learn Scripts:        1
  4310.                   System Memory:       12
  4311.              High Speed Comm?  (Y/N):  Y         <-----
  4312.              Jump Scroll?      (Y/N):  N
  4313.              Swap to Disk?     (Y/N):  N
  4314.  
  4315.     The arrows above refer  to changes from DESQview's default  settings.  NEVER
  4316.     indicate more clock ticks for Background  processing than you are using  for
  4317.     the Foreground processing.  DESQview will automatically increase the  amount
  4318.     of Background clock  ticks whenever  there is little  demand for  Foreground
  4319.     processing.   This is  the case when  running RBBS-PC in  the background and
  4320.     doing word processing  or a similar  task in the  foreground.  This  feature
  4321.     cannot function properly if the  Background clock ticks are set  higher than
  4322.     the Foreground clock ticks.  Setting the High Speed Comm default to YES will
  4323.     make communications interrupts  the highest priority.   This will keep  file
  4324.     transfers going smoothly for your callers while you are doing other tasks or
  4325.     operating multiple nodes of RBBS-PC.
  4326.  
  4327.     RBBS-PC CPC17-2A                                                Page 240
  4328.  
  4329.     5. Adding RBBS-PC to DESQview's  "Open Window" Menu
  4330.     ---------------------------------------------------
  4331.     Refer to the  section "Adding Your Own Program" in the DESQview manual.  You
  4332.     will need to "Add a Program" for  each node of RBBS-PC you intend to operate
  4333.     on your system.  You  may name the programs N1, N2,  etc.  N1 will load  the
  4334.     batch file  RBBS1.BAT, N2 will load RBBS2.BAT and  so on.  Use the following
  4335.     settings for each node (or copy) of RBBS-PC you install.
  4336.  
  4337.                                    Add a Program
  4338.  
  4339.     Program Name . . . . . .  RBBS-PC  [node 1]    Keys to use on Open Menu N1
  4340.     Command to Start Program  RBBS1.BAT
  4341.     Path to Data Files . . .  D:\RBBS  (subdirectory RBBS1.BAT is located in)
  4342.     Memory Size (in K) . . .  288  (see "Memory Considerations" below)
  4343.     Window Position  . . . .  Row   0   Column   0   Height  25   Width  80
  4344.     Script Buffer Size (in bytes)   1000
  4345.     Options:
  4346.                 OFF                 ON---> Displays graphics information
  4347.                 OFF                 ON---> Uses its own colors
  4348.                 OFF                 ON---> Allows keyboard type-ahead
  4349.                 OFF                 ON---> Allows script type-ahead
  4350.                 OFF                        OFF
  4351.  
  4352.     To toggle an option  ON or OFF, move the  cursor to the option with  the TAB
  4353.     key and  press the + key to the  right of the numeric pad.   An option is ON
  4354.     whenever it is highlighted  on your screen.  Only the first  four options on
  4355.     the right hand  side should be highlighted before pressing RETURN to end the
  4356.     "Add a Program" session.  Leaving the "Displays graphics information" option
  4357.     set to  OFF (not  highlighted) may  cause your  system to  lock-up when  you
  4358.     attempt to open another window.
  4359.  
  4360.     6.  Memory Considerations
  4361.     -------------------------
  4362.     Current versions of  DESQview require a little  under 162k of  your system's
  4363.     memory.  This leaves you with about 478k to operate RBBS-PC on a system with
  4364.     640k.  Specify a  minimum window size of  270k for each node of  RBBS-PC you
  4365.     intend to operate.  If you choose to use RBBS-PC's external protocol drivers
  4366.     for file  transfers you can use SHELL  or EXIT.  SHELL requires  370k as the
  4367.     minimum partition  size.   It is  necessary to use  EEMS memory  to run  two
  4368.     copies of RBBS-PC in the same machine. 
  4369.     If you use  the second node for  SYSOP duties only, the  above configuration
  4370.     should  work  nicely.   When  using  the  second node  for  SYSOP  duties an
  4371.     additional modem  and an additional RS-232 interface  is not required -- all
  4372.     you have to do is  use CONFIG to set up the  .DEF file for the node you  are
  4373.     going to use for SYSOP duties as using COM0.  Failure to do so  will prevent
  4374.     your second node from loading properly.
  4375.  
  4376.     7.  Expanded Memory
  4377.     -------------------
  4378.     If you are using an "Expanded Memory" board that allows more than 640k to be
  4379.     used for programs, the constraints discussed in the previous section may not
  4380.     apply.   Specify a window size of  370K for each node of  RBBS-PC and invoke
  4381.     the  external  protocol drivers  by SHELLing.    For information  on running
  4382.     programs  in expanded  memory, refer to  the manuals  for DESQview  and your
  4383.     particular memory board.
  4384.  
  4385.     8. How to AUTOEXEC RBBS-PC From DESQview
  4386.     ----------------------------------------
  4387.     Refer to  the section  "Learn: DESQview's  Keystroke Macro  Feature" in  the
  4388.     DESQview manual.  A script assigned to  the ! key (on the DESQview menu) has
  4389.  
  4390.     RBBS-PC CPC17-2A                                                Page 241
  4391.  
  4392.     a special  meaning.   It is  performed at  the time  you start  up DESQview,
  4393.     immediately  after the  DESQview menu  appears.   This is  called a  STARTUP
  4394.     SCRIPT.  You should "Learn" the Startup Script with no windows open and with
  4395.     the DESQview menu displayed to be sure it  will play back properly. Use this
  4396.     particular script  to load N1,  N2, etc. of  RBBS-PC.  If  you load DESQview
  4397.     from your AUTOEXEC.BAT file, RBBS-PC  will load from DESQview automatically.
  4398.     This  can be handy if there is a power  outage while you are away and no one
  4399.     is around  to re-load RBBS-PC when  the electricity returns.   Finally, it's
  4400.     suggested that you  open the window(s) for RBBS-PC prior to opening a window
  4401.     for any other application software.
  4402.  
  4403.     9. RBBS-PC Technical Support For DESQview
  4404.     -----------------------------------------
  4405.     The preceding configuration has been given to every SYSOP that has contacted
  4406.     our bulletin board system regarding DESQview usage with RBBS-PC.  It has, in
  4407.     every case, solved their problems with DESQview and RBBS-PC.  If  you follow
  4408.     these instructions and continue to have  difficulties, please contact us and
  4409.     we will do our best to help out.
  4410.  
  4411.                                                    John Taylor
  4412.                                                    SYSOP, Indiana On-Line (tm)
  4413.                                                    (812) 332-RBBS /data
  4414.                                                    (812) 332-1110 /voice
  4415.     Additional Notes:
  4416.  
  4417.     Two  Quarterdeck utilities, STDERR.COM and LDFILTER.COM are distributed with
  4418.     RBBS-PC.
  4419.  
  4420.     STDERR.COM should be started up in your  autoexec.bat file when you bring up
  4421.     DESQview.    STDERR.COM  was  written  by  Quarterdeck  Office   Systems  to
  4422.     compensate DOS' inability to redirect the standard error  output to the same
  4423.     device that the standard output device had  been redirected.  If are running
  4424.     something  remotely and an error  occurs, STDERR.COM allows  the error to be
  4425.     displayed at the remote user's end and not simply on the PC that is  running
  4426.     RBBS-PC under DESQview.
  4427.  
  4428.     LDFILTER.COM should be started up every time you open a window  in DESQview.
  4429.     LDFILTER.COM was written by Quarterdeck Office Systems to compensate for the
  4430.     memory  mismanagement of the BASIC  compilers.  If you try  to "SHELL" to an
  4431.     external routine the error that there is  not enough memory to SHELL with is
  4432.     issued.  LDFILTER.COM prevents  this error condition by preventing  the code
  4433.     generated by the BASIC compilers from mis-managing memory.
  4434.  
  4435.     RBBS-PC CPC17-2A                                                Page 242
  4436.  
  4437.     APPENDIX C -- RBBS-PC in a MultiLink Environment
  4438.     ------------------------------------------------
  4439.     RBBS-PC only runs under Multilink versions 4.0, 3.02 and earlier.
  4440.  
  4441.     CONFIG's  allows the  SYSOP to  tell RBBS-PC that  it will  be running  in a
  4442.     MultiLink  environment.    This  is ESSENTIAL  when  running  RBBS-PC  under
  4443.     MultiLink.  CONFIG allows  the SYSOP to specify what MultiLink terminal type
  4444.     code to pass to MultiLink whenever RBBS-PC exits  to DOS via a "Door".  Page
  4445.     15 of the MultiLink documentation specifies the various terminal type codes.
  4446.     When  a SYSOP  indicates that "doors"  are available  (via parameter  101 of
  4447.     CONFIG)  and RBBS-PC is  to be run  under MultiLink,  the SYSOP is  asked to
  4448.     select the MultiLink  terminal type that RBBS-PC  is to inform  MultiLink to
  4449.     expect when MultiLink is given control of the "Door."
  4450.  
  4451.     RBBS-PC  has been  tested running two  copies of  RBBS-PC under DOS  3.2 and
  4452.     MultiLink Advanced (versions  3.02 and 4.0) on an IBM PC which had a mother-
  4453.     board containing  256K and  an AST  Comboplus board  with 384K  (a total  of
  4454.     640K).  However,  to do this RBBS-PC  must be re-compiled (see  Appendix Y).
  4455.     The  "autoexec" file  was  named AUTOEXEC.BAT  and  contained the  following
  4456.     parameters
  4457.  
  4458.                         MLINK /9,266/9,266
  4459.  
  4460.     NOTE! ==>RBBS-PC  must be recompiled with  C:512 in order  to run in  a 268K
  4461.     partition  under  MultiLink.   As  released,  RBBS-PC is  compiled  with the
  4462.     parameter  C:4096 which requires a MultiLink  partition of 270K.  Of course,
  4463.     to SHELL to the external protocols, the partitions must be about 440K. 
  4464.  
  4465.     It is important  to avoid  doing several things  when running RBBS-PC  under
  4466.     MultiLink.  First, NEVER RUN MLSLICE!  This is because MLSLICE hangs off the
  4467.     PC's timer chain and the code generated by the BASIC compilers  violates all
  4468.     sorts of DOS conventions whenever it is  utilizing the PC's speaker (i.e. as
  4469.     when RBBS-PC pages the SYSOP).  In so doing, the code generated by the BASIC
  4470.     compilers is incompatible with programs that do follow DOS conventions.  
  4471.  
  4472.     Second, NEVER use the DOS  "PRINT" command!  This is because there  is a bug
  4473.     in  the code generated by the BASIC  compiler that causes the system to hang
  4474.     if a compiled BASIC program is running and DOS  is printing something.  This
  4475.     bug has  been corrected  in the  BASIC compiler  that was  used to  generate
  4476.     RBBS-PC.EXE that is distributed.   However the version  of RBBS-PC that  you
  4477.     get (if other than from  CPCUG) may not have this bug corrected.   This is a
  4478.     bug that occurs independent of running MultiLink.
  4479.  
  4480.     Third, check your Intel  8088 chip's copyright date by opening  up the cover
  4481.     and locating the  8088 chip. If the  copyright date printed  on the chip  is
  4482.     1978 (i.e. pre 1981), REPLACE THE INTEL 8088 CHIP!!!!!   The 1978 Intel 8088
  4483.     chip  had  several design  flaws  that will  cause  your system  to  lock up
  4484.     occasionally.   One of these design  flaws allowed interrupts to occur while
  4485.     stack  switching (something  that will  happen  running multiple  partitions
  4486.     doing disk I/O under any multi-tasking DOS  add-on such as MultiLink or even
  4487.     IBM's TopView).  Don't blame MultiLink  for the flawed Intel 8088 chip  that
  4488.     IBM put in your PC!  It costs about $70 ($35 for the chip and $35 for labor)
  4489.     and takes about  15 minutes to have  the 1978 Intel 8088 chip  replaced.  In
  4490.     fact,  if you  are going to  replace your  1978 Intel  8088 chip,  you might
  4491.     consider the newer (and 5% to 10% faster) NEC V20 chip.
  4492.  
  4493.     Fourth, DON'T USE "BUFFERS=" in the CONFIG.SYS for DOS!  This may be an "old
  4494.     wives  tale,"  but  I  am  convinced  (but   can't  prove)  that  there  are
  4495.     incompatibilities  between the code the  BASIC compiler generates, DOS's use
  4496.     of "BUFFERS=", and MultiLink.  
  4497.  
  4498.     RBBS-PC CPC17-2A                                                Page 243
  4499.  
  4500.  
  4501.     Fifth, DON'T  ALLOW MNP  PROTOCOL for  file transfers.   An  incompatibility
  4502.     exists  between the  Software  Link, Inc.'s  Multi-Link  and MICROCOM's  MNP
  4503.     software.    Until the  respective  vendor's  resolve this,  don't  use both
  4504.     products concurrently! 
  4505.  
  4506.     Sixth, RBBS-PC will only run in Background 1 or Background 2.
  4507.  
  4508.     Finally,  DON'T  RUN PROGRAMS  THAT USE  THE  BASIC "RUN-TIME"  LIBRARY, and
  4509.     always invoke the  BASIC interpreter with  the command BASIC /C:0!  Both the
  4510.     BASIC interpreter's handling of communications ports  and BASRUN.EXE seem to
  4511.     violate enough DOS conventions to "lock up" MultiLink.
  4512.  
  4513.     When RBBS-PC  is told  that it  is running  in a  MultiLink environment  via
  4514.     CONFIG parameter 162, RBBS-PC will automatically do the following:
  4515.  
  4516.         1.  When re-cycling, it will automatically enque on the correct
  4517.             MultiLink resource ID for the communications port defined
  4518.             in CONFIG for that copy of RBBS-PC to use.
  4519.         2.  When re-cycling, it will automatically tell MultiLink that
  4520.             this is a type "9" partition (i.e. MultiLink is NOT to handle
  4521.             the communications port).
  4522.         3.  When exiting to DOS via a "door", RBBS-PC will automatically
  4523.             tell MultiLink to start handling the communications for this
  4524.             partition (COM1 or COM2) and what type of terminal was defined
  4525.             in CONFIG that would be on the communications port (MultiLink
  4526.             terminal types 1 through 12).
  4527.  
  4528.     Manually, it  is possible  to bring  up and  run one copy  of RBBS-PC  under
  4529.     MultiLink.   The only way  that I have  been able to bring  up two copies of
  4530.     RBBS-PC  successfully (one copy  running in each  of two  partitions) was to
  4531.     bring  them up  via AUTOEXE1.BAT and  AUTOEXE2.BAT files.   It  appears that
  4532.     during the MultiLink  initialization sequence when the  partitions are being
  4533.     established  and the "AUTOEXEx.BAT"  files are being  invoked that MultiLink
  4534.     doesn't get "confused" and lock up with a second copy of RBBS-PC present.   
  4535.  
  4536.     If using  Multi-Link to  run multiple  nodes in  the same  machine under DOS
  4537.     3.x or above,  it is recommended that  the SYSOP execute SHARE.COM  prior to
  4538.     starting multiple RBBS-PC nodes under Multi-Link and specify FILES=20 in the
  4539.     CONFIG.SYS file.
  4540.  
  4541.     RBBS-PC CPC17-2A                                                Page 244
  4542.  
  4543.     APPENDIX D -- RBBS-PC in a CORVUS Network
  4544.     -----------------------------------------
  4545.     RBBS-PC  uses  the  standard  Corvus  SEMAPHORES  when  sharing files  among
  4546.     multiple copies  of RBBS-PC within  a Corvus Network.   This is accomplished
  4547.     via  the  MS-DOS utility  driver,  DRIVEC2,  that Corvus  supplies  with its
  4548.     network.  
  4549.  
  4550.     On a multi-server Corvus network (i.e.  where there are multiple shared hard
  4551.     disk  drives) all PC's  that are running  RBBS-PC within  the Corvus network
  4552.     MUST  have their "home  volume" on the  same server.   Corvus maintains each
  4553.     PC's semaphores on that PC's "home volume".  In order to "share" files among
  4554.     various PC's in a Corvus network, all the PC's  that are "sharing" must also
  4555.     be looking at the same set of semaphores.  In a single-server Corvus network
  4556.     this is not a consideration because there is only one "home volume."  
  4557.  
  4558.     RBBS-PC has  been only  tested with  the Corvus  CONSTELLATION II  interface
  4559.     cards and software that Corvus provides for the IBM PC.  RBBS-PC should work
  4560.     with both Corvus'  older "flat cable" network as well as their newer OMNINET
  4561.     twisted wire pair cable network when  running CONSTELLATION II software.  It
  4562.     is entirely possible that RBBS-PC  would work with some combination of  both
  4563.     Corvus network types as long as they were running CONSTELLATION II software.
  4564.  
  4565.     It  should be  self-evident that  every PC  within a Corvus  network running
  4566.     RBBS-PC must have  a Corvus interface card.   If multiple copies  of RBBS-PC
  4567.     are running in  a Corvus network that  is using older Corvus  software (i.e.
  4568.     NOT running the  CONSTELLATION II  software), the interface  cards must,  at
  4569.     least, all have the CONSTELLATION II ROM. 
  4570.  
  4571.     RBBS-PC is tested only to run on IBM  PC's within a Corvus network.  Clearly
  4572.     an  IBM "clone"  that can run  IBM's DOS,  RBBS-PC.EXE, and is  supported by
  4573.     Corvus' network should also  work.  However, such configurations  (and their
  4574.     many variations) are  not part of  the environment within  which RBBS-PC  is
  4575.     tested and supported.
  4576.  
  4577.     RBBS-PC CPC17-2A                                                Page 245
  4578.  
  4579.     APPENDIX E -- RBBS-PC in ORCHID or AST PCnet NETWORK
  4580.     ----------------------------------------------------
  4581.     RBBS-PC  can  be  implemented  on  an  Orchid PCnet  or  AST  PCnet  Network
  4582.     environment.   It  is  assumed  that  the  necessary  network  hardware   is
  4583.     installed   correctly.   The   following   discussion   describes a  network
  4584.     currently in operation and  receiving  more than 1000  calls  per  week   on
  4585.     two  telephone  lines  for the Computer  Connection of Virginia  Beach.  The
  4586.     hardware and software was:
  4587.     1.  80286 based SERVER with 512K running at up to 9 mhz with:
  4588.            Parallel-Serial Board on the AT with a serial port addressed as COM1
  4589.            AST Rampage memory board configured with 2 megs of expanded memory
  4590.            Monochrome Adapter with parallel printer port
  4591.            PC Net adapter addressed as 0080 with default jumpers
  4592.            Hard disk that can be divided into multiple volumes
  4593.            Single High Density [1.2 meg] floppy disk
  4594.            External modem and cable connected to COM1
  4595.     2.  8088 based WORKSTATION with 640K running at up to 8 mghz with:          
  4596.            multifunction board with COM1, a clock, and parallel port
  4597.            PC Net adapter addressed as 0011 with default jumpers
  4598.            Color Graphics Adapter
  4599.            Two 360K floppy drives
  4600.            External modem and cable connected to COM1
  4601.     3. Software -
  4602.            Operating System = DOS 3.1 network-wide
  4603.            Network Software = Orchid PC Net 3.0a
  4604.            Disk Caching Software = Orchid CACHE.EXE version 2.2
  4605.            RAM Disk = AST FASTDISK
  4606.     Installation procedures ---
  4607.     1. Preliminaries
  4608.        1. Backup hard disk, system and network disks.
  4609.        2. If your hardware is different, be sure  to resolve INTerrupt conflicts
  4610.     with  the PC NET adapters.   Disable second serial  or parallel ports in all
  4611.     PC's.
  4612.     2. Using the WORKSTATION, boot with DOS 3.1 then
  4613.        1. Create  the SERVER and WORKSTATION  boot disks with SPCGEN  and UPCGEN
  4614.     commands, respectively.
  4615.        2.  Copy device  drivers for  the hard  disk, for  the RAM disk,  and for
  4616.     Expanded and Extended memory (REMM.SYS and REX.SYS) to the SERVER boot  disk
  4617.     as well as CACHE.EXE.  Place the following CONFIG.SYS file for the SERVER:
  4618.           device=spc.com                       <-- Network SERVER driver
  4619.           device=REMM.SYS                      <-- Expanded memory driver
  4620.           device=rex.sys 1024                  <-- 1MB Emulated extended memory
  4621.           device=fastdisk.sys 1024 512 128 /e  <-- RAM disk in extended memory
  4622.     3. Place the following commands in the AUTOEXEC.BAT file:
  4623.           disk13                        <-- Network for floppy disk use
  4624.           cache [drives] d=128 x=896 /r <-- 128K  cache of DOS memory & 896K  of
  4625.     EMS memory for SERVER drives to reduce the number of disk accesses
  4626.           spcbio 138023                 <-- Tell network of interrupts used
  4627.     4. Using the SERVER, boot with the newly created SERVER boot disk
  4628.        1. Run the network program SPCINST.
  4629.        2. After naming  all the available drives  on the server, assign  all the
  4630.     hard drive volumes to the WORKSTATION # 11 and them all  READ/WRITE capable.
  4631.     "Remote Execution" need not be enabled.
  4632.        3. The  SERVER  will then  reboot and  the network  will  have the  final
  4633.     configuration as outlined above.
  4634.     5. Boot the WORKSTATION with the newly created WORKSTATION boot disk and:
  4635.        1. Add FILES = 16 to the CONFIG.SYS file for the WORKSTATION.
  4636.        2. Use the network program UPCINST to communicate with SERVER # 80.
  4637.        3. "Map" in all the drives that were assigned by the SERVER.
  4638.        4. The WORKSTATION will reboot so the changes can take effect.
  4639.  
  4640.     RBBS-PC CPC17-2A                                                Page 246
  4641.  
  4642.        5. After the WORKSTATION reboots, do a DIR  C: to see if the directory on
  4643.     the SERVER hard disk can be read.  If not, recheck cables, plug-in cards for
  4644.     INTerrupt  conflicts,  and  network  adapter  cards  to  verify  all  jumper
  4645.     settings.   If necessary, run  the SELFTEST and NETTEST  diagnostics for the
  4646.     network adapter cards.   Also, demonstrate the ability  to copy files across
  4647.     the network  to and from the server then  verify the transfer using the COMP
  4648.     command.
  4649.     6. Assuming that you are able to do a  DIR across the network and copy files
  4650.     to and  from the SERVER,  you are then ready  to run CONFIG.EXE  of RBBS-PC.
  4651.     Run CONFIG and  confirm use of RBBS-PC  in a multinode environment.   Assign
  4652.     the number 1 Node to your SERVER.
  4653.     1. Assign  all welcome, bulletin,  help and menu  files to the  SERVER's RAM
  4654.     drive so the workstation may access them in the fastest way.
  4655.     2. Store FILESEC, PASSWRDS,  MESSAGES, USERS and other sensitive files  in a
  4656.     non-downloadable but sharable drive volume on  the SERVER so the workstation
  4657.     may have read/write access to them.
  4658.     3. Select a location for the SERVER's CALLERS file and the WORKSTATION's.
  4659.     4. Reflect  the node numbers  in the BATch  file names, e.g.  RCTTY1.BAT and
  4660.     RCTTY2.BAT, RBBS1.BAT and RBBS2.BAT.
  4661.     5. Choose PCNET as the environment that you are running RBBS-PC under.
  4662.  
  4663.     Other Considerations--
  4664.     VDISK or Extended memory, which is  not-emulated memory, should not be  used
  4665.     on the SERVER but can be used on the Workstation.  The network configuration
  4666.     most likely to  remain operating with very  few problems is DOS  3.1, Orchid
  4667.     3.0a PC  NET software  and CACHE.EXE  version 2.2  and an  Expanded/Extended
  4668.     memory combination using the new Lotus/Intel/Microsoft EMS memory boards. 
  4669.  
  4670.     Two nodes can be  efficiently set up using the SERVER  in non-dedicated mode
  4671.     but the danger  is that if the SERVER  locks up, the whole  system locks up.
  4672.     The sample PC Net system is set up  in this fashion but it is an  economical
  4673.     approach to a  two node system  which has been  functioning quite well  with
  4674.     minimal problems.  Do not run software on the SERVER  that is known to cause
  4675.     problems especially memory  resident utilities.   There is  a potential  for
  4676.     files being  CROSS-LINKED in any read/write sharable  environment.  Frequent
  4677.     backups are to be very strongly recommended.
  4678.  
  4679.     Because  of  wide  variety of hardware combinations  and  possible  network
  4680.     permutations,  the  above  is  intended ONLY as general  guidelines  to  be
  4681.     followed when installing RBBS-PC on your Orchid network.
  4682.  
  4683.     Rob Cecchino
  4684.     Sysop, Computer Connection
  4685.     (804) 481-1824 at 1200/2400 for assistance.
  4686.  
  4687.     RBBS-PC CPC17-2A                                                Page 247
  4688.  
  4689.     APPENDIX F -- RBBS-PC in an Alloy PC-SLAVE/16 Environment
  4690.     ---------------------------------------------------------
  4691.     The PC-Slave is an IBM compatible computer on an expansion card manufactured
  4692.     by  Alloy Computer Products, Inc. of  Framingham, MA 01701.  Their telephone
  4693.     number is (617)  875-6100.  Adding PC-Slaves  converts the PC from  a single
  4694.     CPU to a multiple CPU, all under the control of  the main or host PC.   Each
  4695.     slave can run RBBS-PC (or other programs).  
  4696.  
  4697.     A. THE ADVANTAGES:  Compared to other means  for running multiple RBBS-PC's,
  4698.     the advantages of slaves are:
  4699.  
  4700.     1. SPEED -- Each copy  of RBBS has a  dedicated computer and therefore  runs
  4701.     very fast compared  to multi-tasking products like Multi-Link,  DesqView, or
  4702.     Top View.
  4703.  
  4704.     2. SHARED FILES -- Each bulletin board can share files, including  the users
  4705.     and messages.   The PC Slave  system acts like  Orchid's PC-Net network  for
  4706.     record locking.
  4707.  
  4708.     3.EXPANDABILITY --  You can have  up to 31  slaves.  The big  advantage over
  4709.     Multi-Link is that  you have faster boards  and can expand beyond  2 boards.
  4710.     The big advantage over networks  is that you do not have to  add another PC,
  4711.     just another  slave.  The power supply and cooling  capacity of a PC-2 or XT
  4712.     limit you to adding only 2 slaves.  An AT can have up to five.  You can  buy
  4713.     PC compatibles that have more expansion slots.  You can also get an external
  4714.     hard disk with expansion slots.  Or you can buy an expansion chassis.
  4715.  
  4716.     4. COSTS -- It is far cheaper to expand using PC-Slave/16's  than a network.
  4717.     The PC-Slave lists  for $900  and can be  purchased for significantly  less.
  4718.     Other networks require not only  a separate PC but also a  "network" card of
  4719.     some sort which puts the costs of each port well above $2,000.
  4720.  
  4721.     5. DEDICATED PC IS  NOT REQUIRED -- Your PC  can remain free for you  to use
  4722.     while slaves run  the bulletin boards (or  run another copy of  the bulletin
  4723.     board).      You  do not  degrade  performance  on  the  slaves, except  for
  4724.     contention  for the  hard  disk and  that  can be  mitigated  by using  disk
  4725.     caching.
  4726.  
  4727.     6. EASY  SNOOP.   Using Alloy  utilities GIMME and  VIEW, you  can view  the
  4728.     session on any slave and attach your keyboard to it.  You can also install a
  4729.     dumb monitor to any slave.
  4730.  
  4731.     B. THE DISADVANTAGES:  The disadvantages of a slave system are:
  4732.  
  4733.     1. COMPATIBILITY --Not  all hard disks are compatible with the slaves.  Hard
  4734.     disks known to be compatible include  the Seagates, Priam 60 meg, Bernoulli,
  4735.     and Maxtor hard disks, as well as the Alloy  line of hard disks.  Hard disks
  4736.     definitely not compatible include all models of US Design.
  4737.  
  4738.     2. ONLY TWO  SHARED DRIVES CAN BE  WRITTEN TO -- At  most two drives can  be
  4739.     shared for writing.  All drives can be read from any slaves, but to write on
  4740.     a non-shared drive, no other can write to it.
  4741.  
  4742.     C. OVERVIEW OF SETTING UP A PC-SLAVE/16 RBBS-PC:  Five  easy steps on how to
  4743.     install  RBBS-PC in a PC-Slave/16 environment (Note that the PC Slave system
  4744.     requires a special configuration for RBBS-PC):
  4745.  
  4746.     STEP 1  -- You will have to purchase multiple  telephone lines.  They can be
  4747.     made to roll so that  only one number is called, and if busy,  the call will
  4748.     roll over to the other lines.
  4749.  
  4750.     RBBS-PC CPC17-2A                                                Page 248
  4751.  
  4752.  
  4753.     STEP2  -- Install the slaves.  Remember to  set switches on the slave boards
  4754.     that number them consecutively.  See the PC-Slave documentation for details.
  4755.  
  4756.     STEP 3 --  Install the  software.  The  Alloy PC-Slave  has to have  special
  4757.     Alloy software called NTNX to coordinate the slaves and process requests for
  4758.     shared resources.   You also  have to run  an Alloy routine to  prepare your
  4759.     hard disk  for use with the  Alloy slaves.  See the  PC- Slave documentation
  4760.     for details.
  4761.  
  4762.     STEP 4 --  Install a modem with no pin 22.   Pin 22 used to be required with
  4763.     RBBS-PC in  order to answer  the phone.   On  the slaves, pin  22 CANNOT  be
  4764.     connected,  or  else the  slave will  continuously  reboot.   However, newer
  4765.     slaves support pin 22.
  4766.  
  4767.     STEP 5 -- Configure RBBS-PC using CONFIG.EXE with the following parameters:
  4768.          (a)  use COM2 (parameter 221)
  4769.          (b)  Via  parameter 29 tell RBBS-PC it is running  on an IBM compatible
  4770.     rather than a PC, XT, or AT.  (Lie and tell RBBS-PC you have a Compaq Plus.)
  4771.          (c)  Use  CONFIG parameter 161  to set the  maximum number of  bulletin
  4772.     boards to  as many boards as  you intend to install (rather  than the number
  4773.     you are currently running.  This makes expansion easier.).
  4774.          (d)  PC-Net is the multi-user environment you will be running under and
  4775.     should indicate so via CONFIG parameter 162.
  4776.          (e)  Set up the RBBS-PC files.
  4777.  
  4778.     An easy way  to configure the  multiple RBBS-PC's is  to put each  one in  a
  4779.     separate  subdirectory,  e.g. "RBBS1"  for  the  1st node,  "RBBS2"  for the
  4780.     second, etc.   Inside each subdirectory  will be the  callers file for  that
  4781.     node and the DEF file (RBBS1PC.DEF,  RBBS2PC.DEF, etc.).  The DEF files  can
  4782.     be  the  same.    Make  the  default  drive  on  each  slave  be  the  right
  4783.     subdirectory.  Path  over to where the  RBBS-PC.EXE is stored.   Invoke each
  4784.     RBBS-PC by using its node number, e.g.  "RBBS-PC 1", "RBBS-PC 2", etc.   You
  4785.     can  set  up  an  autoexec  for  each  slave  that  brings  up   the  boards
  4786.     automatically upon system boot.
  4787.  
  4788.     Please note that  the NTNX software is  very vulnerable to any  RAM resident
  4789.     software.  You should install the Slaves with no additional software present
  4790.     and carefully test any resident software you want to run with it.
  4791.  
  4792.     D. A DETAILED DESCRIPTION OF SETTING UP A PC-SLAVE 16 RBBS-PC:
  4793.  
  4794.     Hardware Limitations:
  4795.  
  4796.     1.  Two PC/Slave 16  cards per  XT box  or five in  an AT  maximum otherwise
  4797.     you'll be buying  power supplies frequently.  An expansion  chassis for four
  4798.     cards (Alloy Plus4)  or expansion  chassis for  up to twelve  cards will  be
  4799.     needed for bigger systems.  Expansions boxes  can be daisy- chained to up to
  4800.     thirty one Nodes or workstations, if needed.
  4801.  
  4802.     2.  PC/Slave 16 cards do  not support PIN  22 for Ring Detect.   You must be
  4803.     able to  set your modem to  AutoAnswer as well as  NOT have PIN  22 wired on
  4804.     your modem cables; if PIN 22 is connected, each callers RING will reboot the
  4805.     Slave.
  4806.  
  4807.     3. No clock on the PC/Slave 16 card.  The Slave gets the  Time and date from
  4808.     the main system clock and so one must be available.
  4809.  
  4810.     4. A terminal such as a Kimtron KT-7/PC or  Alloy PCST is needed if you want
  4811.     to work on  a slave the same as  you would on the host  computer (but not if
  4812.  
  4813.     RBBS-PC CPC17-2A                                                Page 249
  4814.  
  4815.     you just  want to  view activity on  slaves occasionally).   Other terminals
  4816.     will work but may not support all of the IBM extended graphics codes.  For a
  4817.     multi-node RBBS-PC, one terminal  can be used with an A-B-C-D  switching box
  4818.     to 'dial in' to the node you wish to work with.
  4819.  
  4820.     5.  The Slaves' CPU [NEC  V20 @ 8  mhz] shuts down when  writing to the hard
  4821.     disk.    This  creates problems  with  timeout  errors on  uploads.   Upload
  4822.     problems can  be eliminated by using the write buffer option in NTNX 1.64 or
  4823.     higher (/B). The problem  can also be alleviated by using  a fast hard drive
  4824.     supported by Alloy.   Also, the hard drive  must be formatted with  the most
  4825.     efficient interleave  setting and  driver.   Hard drives  that work  without
  4826.     significant upload  timeout errors have  been formatted  with either  Golden
  4827.     Bow's  Vfeature  Deluxe or  Priam's  formatting  software;  this problem  is
  4828.     especially noticeable on AT  systems and not too much of  a problem on small
  4829.     XT  systems.  Seagate, Bernoulli Box,  Maxtors, and Priam Inner Space drives
  4830.     seem to work fine with the Alloy PC/Slave-16 cards.  
  4831.            
  4832.     Software Limitations:
  4833.  
  4834.     1. ATNX runs Orchid PC Net applications but NTNX is  more versatile and will
  4835.     run applications for  Novell's Advanced Netware,  MS-Net, AND Orchid PC  Net
  4836.     with proper  file locking.  NTNX has had  less problems with file corruption
  4837.     and cross-linking than ATNX after polling current sysops using Alloy Slaves.
  4838.  
  4839.     2. ATNX and NTNX will allow users working on  Slaves to easily and routinely
  4840.     have read/write access on only TWO hard drive volumes.
  4841.  
  4842.     3. ATNX and NTNX have difficulty keeping track of system date  and time when
  4843.     "certain" programs are  run on  the Slave.   With RBBS-PC, running  external
  4844.     such as Ymodem and WXmodem cause the time and date on the Slaves to go awry.
  4845.     Also, WXMODEM does not work in upload mode on Slaves due to a timing problem
  4846.     in the initial handshake.  Alloy's solution to this problem is a file called
  4847.     UPTIME.COM, which is run on the HOST, but I have  had very poor results with
  4848.     it.  The problem seems to be most identifiable on AT class machines.
  4849.  
  4850.     For the optimum  system flexibility you may  want to buy Alloy  PC/Slave-16N
  4851.     cards which have the special PAL chip for NTNX/Novell compatibility and NTNX
  4852.     software.  RBBS-PC, however,  will run fine without the PAL  chip even under
  4853.     NTNX.
  4854.  
  4855.     Some  nice   additional  utilities   for  the   Slaves,  including   special
  4856.     diagnostics, are found in the  separate PC-Plus Advanced User's Kit and  are
  4857.     worth having.  A single Kimtron KT-7/PC terminal or other smart terminal may
  4858.     be obtained  right away  but is  not necessary  for the  bulletin-board-only
  4859.     system as one can always sign on from remote for answering mail; pay special
  4860.     attention to the  terminal-to-Slave cable as  it is non-standard and  you'll
  4861.     probably wind up making it yourself for less than  $5 in parts -- one end is
  4862.     a male 9-pin D-shell and  the other is 25-pin RS232  male connector.  For  a
  4863.     two to four node system, obtain a T-Switch box from Inmacs or Radio Shack to
  4864.     hook  the terminal as COMMON and Slave  consoles.  The computer to house the
  4865.     Slaves, called  the HOST,  should be  the quickest  CPU speed  that you  can
  4866.     obtain.   All PC  Slaves/16 should be  purchased with 1  megabyte of onboard
  4867.     RAM.
  4868.  
  4869.     Installation:
  4870.  
  4871.     1. Format your hard drive with either DOS 3.1 or 3.2.
  4872.  
  4873.     2. Divide the  hard drive into multiple  volumes of standard DOS  size (less
  4874.     than 32 megabytes).
  4875.  
  4876.     RBBS-PC CPC17-2A                                                Page 250
  4877.  
  4878.  
  4879.     3. Install  NTNX or ATNX and the Slaves as  is written in the Alloy manuals.
  4880.     Choose  the default  settings for everything.   Use  512K on the  1 megabyte
  4881.     PC/Slave for caching and the other  512  to run RBBS.  Depending on how  the
  4882.     board is configured, you may need to set switches so that 512 is used to run
  4883.     applications.  Use 4K  for the Host PC caching.  Allocate  25 files per each
  4884.     Slave + 64 for the maximum number of open files.
  4885.  
  4886.     4.  Set up  the CONFIG.SYS and  AUTOEXEC.BAT files  for the HOST  as follows
  4887.     especially if you do not plan to use the HOST as a Node for RBBS-PC:
  4888.        CONFIG.SYS
  4889.           device=NX.SYS          -  NTNX driver (must be first!!)
  4890.           device=hard_drv.sys    -  Your hard Disk driver
  4891.           FCBS = 32,32           -  File Control Blocks increased
  4892.           buffers = 20           -  DOS buffers
  4893.           files = 32             -  Number of OPEN files on HOST
  4894.           device = ANSI.sys      -  Extended graphics driver
  4895.     AUTOEXEC.BAT
  4896.           NTNX                   -  NTNX driver
  4897.           fm 3                   -  Level of File protection
  4898.           prompt $p$g            -  customized dos prompt
  4899.           path = ........        -  set path to the NTNX files
  4900.  
  4901.     5. Set up the CONFIG.SYS and AUTOEXEC.BAT files for the Slaves as follows:
  4902.        CONFIG.U0x under DOS 3.2
  4903.           FCBS = 32,32
  4904.           buffers = 10
  4905.           files = 30
  4906.           device = ansi.sys
  4907.           shell = C:\COMMAND.SLV C:\ /P /E:800
  4908.           device = ANSI.SYS
  4909.  
  4910.     Of special note, the SHELL statement has been used to expand the environment
  4911.     space on  the Slaves.  This corrects a problem seen with random RBBS lockups
  4912.     or getting Out of Memory errors; external protocols and DOOR programs, given
  4913.     time,  stop running  due to memory  problems if  one doesn't use  this SHELL
  4914.     statement.  Under DOS  3.1, set /E:50 [=  50 paragraphs] and under DOS  3.2,
  4915.     set /E:800 [= 800 bytes].
  4916.        AUTOEXEC.U0x
  4917.           fm 3
  4918.           prompt $p$g
  4919.           path = .......Set the path to the NTNX files and to the 'home'
  4920.                      directory for this node on the SHARED drives
  4921.           cd\RBBS0x     Change to the RBBS-PC directory for Node x
  4922.           RBBSx.BAT     Invoke RBBS-PC for Node x
  4923.  
  4924.     6. CONFIG parameters for the slaves, must be the following parameters:
  4925.           Parameter 29 (Type of computer):  Compaq Plus.
  4926.           Parameter 224 (Number of rings to wait before answering):  0.
  4927.           Parameter 162 (Environment):  Orchid PC Net.
  4928.           Parameter 221 (Communications port):  2.
  4929.           Maximum  number of users:   at least as many slaves  as you have, plus
  4930.     one if you plan  to run a node on the host.  You can specify more (up to 36)
  4931.     if you want to plan for expansion.
  4932.  
  4933.     7. Set up RBBS-PC as follows:
  4934.           Create subdirectories \RBBS01, \RBBS02, \RBBS0x... on a shared drive.
  4935.  
  4936.           Create  subdirectory \MAIN  for  your  upload  directory,  answers  to
  4937.     questionnaires, comments.
  4938.  
  4939.     RBBS-PC CPC17-2A                                                Page 251
  4940.  
  4941.  
  4942.           On  a cached  drive, place  all static  RBBS-PC files  such as  MENUs,
  4943.     HELPs,  PASSWRDS, TRASHCAN, external file transfer  protocols.  RBBS- PC.EXE
  4944.     and CONFIG.EXE go here as well.
  4945.  
  4946.     On the second SHARED drive, make a subdirectory \COMMON for MESSAGES, USERS,
  4947.     CONFENCE, and conference message/user files.
  4948.  
  4949.           If you plan to use DOORS, especially Bob Westcott's DOORWARE, create a
  4950.     subdirectory called \DOORS on the SHARED drive.  
  4951.  
  4952.           Run CONFIG and  create RBBSxPC.DEF files for all your nodes.  Remember
  4953.     that you will run multi-user under PC Net.   To answer               on RING
  4954.     zero, the modem serial  port on the Slaves must be addressed as COM2 and not
  4955.     COM1.  Double-check file locations! Put  your static text files in the  same
  4956.     subdir as MESSAGES and USERS and make it the default subdirectory
  4957.  
  4958.           Copy RBBS1PC.DEF to RBBSxPC.DEF  for each node that  you hope to  have
  4959.     then re-edit  each .DEF file to  customize Node numbers such  as RCTTY1.BAT,
  4960.     RBBS3.BAT, etc. 
  4961.  
  4962.     Copy the  RBBSxPC.DEF file to the matching subdirectory.   If you don't wish
  4963.     to edit the .DEF files, place RBBSxPC.DEF on one shared drive and  place the
  4964.     dynamic RBBS-PC files on  the other shared drive;  be sure that you have  at
  4965.     least  logged  into  that  other  SHARED  drive's  subdirectory,  using  the
  4966.     AUTOEXEC.U0x before starting  RBBS-PC or  else RBBS-PC will  not find  those
  4967.     files.
  4968.  
  4969.           Temporary files used for  transfer or Verbose ARC listing  are created
  4970.     on the default subdirectory automatically.  You may assign CALLERS as either
  4971.     one file  for all nodes  or one CALLERS  file for each  node located in  the
  4972.     default directory.
  4973.  
  4974.           To  use Sysop  Function 7  (Remote  Drop to  DOS),  RBBS-PC must  find
  4975.     COMMAND.COM.    PC-Slave/16's,  however,  use  COMMAND.SLV  as  the  command
  4976.     processor; copy COMMAND.SLV to COMMAND.COM, place it  on a cached drive, and
  4977.     tell CONFIG where to find it.  Be careful using this Sysop function with the
  4978.     Slaves as  you  will lock  up the  Node  if you  lose  carrier; WATCHDOG  is
  4979.     incompatible with the Slaves.
  4980.  
  4981.     Additional tips/hints:
  4982.     1. Avoid using any memory resident utilities.  They may interfere with Slave
  4983.     operation.
  4984.  
  4985.     2. A program on the Advanced Utilities disk called SEE.COM allows callers on
  4986.     any Node to be viewed from the HOST.
  4987.  
  4988.     3. Norton's Editor or WordPerfect Corporation's Programmers Editor  from the
  4989.     WordPerfect Library is used for editing operations on the system, especially
  4990.     for maintaining the  fixed-length directory of  the file management  system.
  4991.     Not many other editors, except EDLIN, can be used reliably.
  4992.  
  4993.     4. Easy to forget  but don't as it will  be a source of frustration  -- plan
  4994.     out your file locations on paper before actually setting up the system.
  4995.  
  4996.     5. Backup your system frequently!
  4997.  
  4998.     If you  have any questions or problems, feel free  to leave a message on Ken
  4999.     Goosens system (703) 978-6360.
  5000.  
  5001.     RBBS-PC CPC17-2A                                                Page 252
  5002.  
  5003.     APPENDIX G -- RBBS-PC and 10 NET Network  
  5004.     ----------------------------------------
  5005.     Starting with RBBS-PC CPC15-1A support for Fox Research's' 10 Net Network is
  5006.     being provided.
  5007.  
  5008.     Since this  is the first release with this  support we have very little that
  5009.     we can offer in tuning support for 10 NET.
  5010.  
  5011.     We selected to use the Semaphore locking  mechanism that we have used in the
  5012.     other networks and  therefore you must  specify the following parameters  on
  5013.     the Superstation in your 10 NET network.
  5014.  
  5015.     LOGINS=x            1 for every node on the system
  5016.     OPENFILE=xxx        10 for every node running RBBS-PC
  5017.     SHAREFIL=16         (This is the default you can add more if you want)
  5018.     LOCKS=x             3
  5019.     SEMA=xxx            3 for every node running RBBS-PC
  5020.  
  5021.     You will also need to run NETSU and specify option 6 (DOS file sharing).
  5022.  
  5023.     Please note that  these values should be  in addition to any  parameters you
  5024.     may have already specified for other User stations and other uses of your 10
  5025.     NET  network.  And  you can always  make the values  larger in attempting to
  5026.     improve performance.   
  5027.  
  5028.     RBBS-PC CPC17-2A                                                Page 253
  5029.  
  5030.     APPENDIX H -- RBBS-PC and the Hearing-Impaired
  5031.     ----------------------------------------------
  5032.     Telecommunications Devices for the Deaf (TDD's) use the Baudot character set
  5033.     (i.e. 5-bit) and utilize modems that transmit at 45 baud and do not generate
  5034.     a carrier signal.   This is because such  devices were initially adaptations
  5035.     of surplus Western  Union TTY  machines for telephone  communications.   The
  5036.     widespread use of Baudot devices by the hearing- impaired, the previous high
  5037.     cost  of  computers and  modems,  and  the  lack  of software  designed  for
  5038.     electronic communications,  has  impeded the change to ASCII  communications
  5039.     by the hearing-impaired community.
  5040.  
  5041.     Equipment manufacturers have  also made it difficult for the deaf to change.
  5042.     When TDD's with ASCII code transmission  capability began to be offered, the
  5043.     majority of manufacturers limited them to only  110 baud and put disclaimers
  5044.     in their manuals  that said ASCII was  available for use but  that "computer
  5045.     language" was "less  reliable" and hard to use.  Their limiting of the TDD's
  5046.     output screen  to 12 to 20 characters further compounded the problem because
  5047.     the screen would overwrite several times to display one line of text from  a
  5048.     host system.  The manufacturers' "solution" to this problem was to recommend
  5049.     printers for communication with such "host" systems as  RBBS-PC.  Some units
  5050.     now offer both 110  and 300 baud  ASCII transmission in  addition to the  45
  5051.     baud Baudot.  Unfortunately, these typically have only 20 character screens.
  5052.  
  5053.     In December of 1984, Ted Janossy  of Rochester, Minnesota, sent me a  three-
  5054.     page letter describing  the above situation.   Ted's letter motivated me  to
  5055.     test and verify the "ring-back" feature of RBBS-PC in CPC12-4A.   It had not
  5056.     been tested in  earlier versions because  I had assumed (presumptuously  and
  5057.     insensitively) that  "real SYSOP's  don't use  ring-back RBBS-PC's."   Ted's
  5058.     letter awakened me to the potential  of RBBS-PC to facilitate communications
  5059.     among the hearing-impaired.   In the awakening I  also had a chance  to look
  5060.     down at my own feet of clay.
  5061.  
  5062.     RBBS-PC can be configured to answer  calls only after a specified number  of
  5063.     rings  (i.e. 15).   The telephone companies  wire the homes  of the hearing-
  5064.     impaired such that when  the phone rings, the lights within  the house flash
  5065.     on and off. 
  5066.  
  5067.     With  RBBS-PC a SYSOP  can specify  the number of  rings RBBS-PC is  to wait
  5068.     before answering the phone  automatically.  Setting this number  high enough
  5069.     allows  someone with  a hearing  impairment  time enough  to get  to  the PC
  5070.     running RBBS-PC.   Pressing the PC's function  key 5 (F5) causes  RBBS-PC to
  5071.     answer the phone immediately.  The caller would know that someone was at the
  5072.     keyboard because RBBS-PC  answered the phone  in less than the  agreed- upon
  5073.     number of rings.  The caller would log onto RBBS-PC normally and the  person
  5074.     at the PC  keyboard would be able to see who it  was.  If the person who was
  5075.     called wanted to "chat" with the caller,  all they would have to do would be
  5076.     to press function key 10 (F10). 
  5077.  
  5078.     If RBBS-PC  didn't answer  the telephone  within the  agreed-upon number  of
  5079.     rings, the caller would know that whomever was being called couldn't come to
  5080.     the keyboard.  The caller would then log on and leave a message.
  5081.  
  5082.     RBBS-PC CPC17-2A                                                Page 254
  5083.  
  5084.     APPENDIX I -- RBBS-PC and the IBM PCjr
  5085.     --------------------------------------
  5086.     RBBS-PC adheres to the Hayes standards  for autoanswer applications that are
  5087.     described  in Section 9, "Writing Programs  for the Smartmodem 1200," of the
  5088.     SMARTMODEM  1200  HARDWARE REFERENCE  MANUAL.   Under  the  section entitled
  5089.     "Additional  Program   Considerations"  Hayes  recommends   that  autoanswer
  5090.     applications (like RBBS-PC) "...  force the modem to  answer the call  (ATA)
  5091.     rather than allowing the modem to automatically answer...."   Beginning with
  5092.     CPC13-1A, RBBS-PC  no longer  REQUIRES the  Ring Indicator  signal from  the
  5093.     modem (pin  22) in  order to answer  the phone  (except if parameter  224 of
  5094.     CONFIG is non-zero).
  5095.  
  5096.     Here are some facts about the PCjr:
  5097.  
  5098.     1.The PCjr's external modem interface does not have a Ring Indicator signal.
  5099.     2.The PCjr requires  that an external modem be opened as COM1 if no internal
  5100.     modem is installed.  However, if no  internal modem exists the PCjr requires
  5101.     that the COM2 RS-232 registers be used even though the port has been  opened
  5102.     as  COM1.   Technically  this  is described  as  using  the external  RS-232
  5103.     asynchronous adapter as logical channel 1 (i.e. COM1) but manipulating it as
  5104.     physical channel  2 (i.e.  COM2).   This  occurs on  a PCjr  only   when  an
  5105.     internal  modem is NOT present and the external RS-232 interface is.
  5106.     3. The 128K PCjr only  provides 90K of usable RAM (the rest is  used by DOS,
  5107.     the monitor's buffers, etc.).  Fortunately PCjr owners can get up to 512K of
  5108.     RAM with "add-on"  equipment (from IBM and  others) in order to  have enough
  5109.     RAM for RBBS-PC to run in.
  5110.     4.The standard PCjr supplied  by IBM does not have a DMA  and hence can't do
  5111.     communications I/O simultaneously while doing disk I/O.
  5112.  
  5113.     RBBS-PC beginning with version CPC13-1A will  run an IBM PCjr providing that
  5114.     the PCjr
  5115.  
  5116.     1. Has at least 320K of memory.
  5117.     2.Disk I/O  does  not occur  simultaneously  with communications  I/O  (i.e.
  5118.     either you have a second disk drive with a DMA or you set BUFFERS=0).
  5119.     3. One of the following three modem configurations are used:
  5120.          An internal PCjr modem with an external Hayes modem where the external
  5121.          Hayes modem is used for RBBS-PC.
  5122.          No internal PCjr modem with an external Hayes modem used for RBBS-PC.  
  5123.          Only an internal PCjr modem and it is used for RBBS-PC.
  5124.  
  5125.     The following discusses  each of these three  modem configurations supported
  5126.     by RBBS-PC with the PCjr.
  5127.  
  5128.     Internal PCjr Modem with RBBS-PC Using External Hayes Modem
  5129.     -----------------------------------------------------------
  5130.     This configuration means  that the PCjr has  both a COM1 (the  internal PCjr
  5131.     modem) and a  COM2 (the external  Hayes modem).   RBBS-PC is set  up to  use
  5132.     COM2.   No  changes are  required  to for  RBBS-PC  for this  type  of  PCjr
  5133.     configuration.  CONFIG parameter  224 should be set  to 0.  This will  cause
  5134.     RBBS-PC to set the  external Hayes modem into "auto-answer" mode and RBBS-PC
  5135.     will  wait for carrier detect.   This is the way  that RBBS-PC overcomes the
  5136.     PCjr's lack of "ring-indicator" signal for the external communications port.
  5137.  
  5138.     No Internal PCjr Modem With RBBS-PC Using External Hayes Modem
  5139.     --------------------------------------------------------------
  5140.     This configuration means  that the PCjr has only one RS-232 interface -- the
  5141.     external Hayes modem.  This  must be opened as COM1 but use COM2's registers
  5142.     to control the  communications port (believe  it or not  that's the way  IBM
  5143.     designed the PCjr).  
  5144.  
  5145.     RBBS-PC CPC17-2A                                                Page 255
  5146.  
  5147.  
  5148.     CONFIG parameter 221 should be used to indicate that COM1 is being used.
  5149.  
  5150.     Unfortunately  the  current  BASIC  compilers  (both  IBM's  Version  2  and
  5151.     Microsoft's QuickBASIC) are  incapable of handling  a communication port  as
  5152.     logical device 1  (i.e. COM1) but on physical channel 2 (i.e. the interrupts
  5153.     are for COM2).
  5154.  
  5155.     Should this ever  be fixed by either  IBM or Microsoft, CONFIG  parameter 29
  5156.     should be  used to indicate that no internal PCjr  modem is installed.  This
  5157.     tells CONFIG to  make sure that  COM2 registers are  used to manipulate  the
  5158.     PCjr's external communications port.
  5159.  
  5160.     Until this is  fixed by the respective  vendors, the PCjr user  will have to
  5161.     run a utility like COMSWAP that exchanges the pointers between COM1 and COM2
  5162.     within DOS.  
  5163.  
  5164.     In either case,  CONFIG parameter 224 should  be set to 0.   This will cause
  5165.     RBBS-PC to set the external Hayes  modem into "auto-answer" mode and RBBS-PC
  5166.     will  wait for carrier detect.   This is the way  that RBBS-PC overcomes the
  5167.     PCjr's lack of "ring-indicator" signal for the external communications port.
  5168.     Again   no  changes  to  RBBS-PC   are  required  for   this  type  of  PCjr
  5169.     configuration.
  5170.  
  5171.     Only An Internal PCjr Modem for RBBS and NO External Hayes Modem
  5172.     ----------------------------------------------------------------
  5173.     For  this  type  of PCjr  configuration,  you can  take  the  CONFIG default
  5174.     settings for the communications port (COM1) and specify that you are running
  5175.     on a PCjr  (parameter 29).   However,  make sure that  CONFIG parameter  228
  5176.     specifies that the  modem is to be opened at 300  baud.  Of course, RBBS- PC
  5177.     will be only able to answer  the telephone at 300 baud and send  and receive
  5178.     data from users who log on with their communications parameters set at N/8/1
  5179.     (i.e. no parity, eight data bits, and one stop bit) since RBBS-PC is limited
  5180.     by the PCjr's own modem's limitations.  
  5181.  
  5182.     RBBS-PC already has the modem commands for  the PCjr's very strange internal
  5183.     modem in the logic  to answer the phone so  no changes to the .DEF  file are
  5184.     required.
  5185.  
  5186.     RBBS-PC CPC17-2A                                                Page 256
  5187.  
  5188.     APPENDIX J -- RBBS-PC Subscription Service
  5189.     ------------------------------------------
  5190.     It seems that many people absolutely  must be on the bleeding edge of  RBBS-
  5191.     PC and demand  each new version  as soon as possible  after it is  released.
  5192.     Since downloading it from my RBBS-PC usually keeps my board busy 24 hours  a
  5193.     day, seven days  a week when  each new version  is released, and  I want  my
  5194.     board to be used to encourage and  engage in discussions, I offer the  RBBS-
  5195.     PC "Subscription Service" in order to free up my board.
  5196.  
  5197.     Within the  United States for $35 (prepaid by check  or money order) you can
  5198.     be guaranteed next day  delivery of the very NEXT release of RBBS-PC just as
  5199.     I mail it to the CPCUG Software Exchange.  The diskettes will be sent to you
  5200.     directly  via Federal Express's  "Courier-Pak" Overnight Envelope.   In case
  5201.     you are wondering who gets the $35 it is allocated as follows:
  5202.  
  5203.        $ 25 -- Federal Express Charge for Courier-Pak
  5204.           8 -- CPCUG Software Exchange
  5205.           2 -- for the hassle the family puts up with and for rate changes
  5206.         ----
  5207.        $ 35 = Total Cost    Add: $5 for Alaska, Hawaii, and Puerto Rico
  5208.                                  $11 for Europe, the Far East, and Australasia
  5209.  
  5210.     Hopefully,  this service  will only  be  used by  a very,  VERY  few!   Most
  5211.     releases have a few  fixes that get published  within the first week or  two
  5212.     that they are  out.  Because of  this everyone is advised to  check back for
  5213.     fixes after each  release goes out.
  5214.  
  5215.     To obtain  this service  for  the NEXT  release (it  does NOT  apply to  the
  5216.     current or previous releases) fill out the  following form and send it along
  5217.     with  your check  or  money order  in  U.S. funds  (no  purchase orders  are
  5218.     accepted and your canceled check is your only invoice).
  5219.           +--------------------------------------------------------------+
  5220.           | To: D. Thomas Mack            RBBS-PC Subscription Service to|
  5221.           |     39 Cranbury Drive         the NEXT release of RBBS-PC (if|
  5222.           |     Trumbull, Connecticut      any, and none are implied or   |
  5223.           |                    06611      promised by this offer)        |
  5224.           |--------------------------------------------------------------|
  5225.           |Date Requested:                   Date Received:              |
  5226.           |--------------------------------------------------------------|
  5227.           |To (Recipient's Name):                                        |
  5228.           |--------------------------------------------------------------|
  5229.           |Recipient's Phone Number (required): (      )        -        |
  5230.           |--------------------------------------------------------------|
  5231.           |Exact Street Address (no P.O. Box or P.O. Zip Code accepted)  |
  5232.           |                                                              |
  5233.           |                                                              |
  5234.           |--------------------------------------------------------------|
  5235.           | City                            | State or Country           |
  5236.           |                                 |                            |
  5237.           |--------------------------------------------------------------|
  5238.           | Signature (required)            | ZIP Code for Street Address| 
  5239.           |                                 |                            |
  5240.           +--------------------------------------------------------------+
  5241.           Note: this is not a promise that there will be any new releases.
  5242.  
  5243.     RBBS-PC CPC17-2A                                                Page 257
  5244.  
  5245.     APPENDIX K -- RBBS-PC National Listing Service     
  5246.     ----------------------------------------------
  5247.     Frequent inquires are made about a  "national" list of RBBS-PC's.  In  order
  5248.     to  help SYSOP's (and potential SYSOP's) everywhere find configurations that
  5249.     most closely match  their own, with the introduction  of RBBS-PC CPC12-5B an
  5250.     additional public  service was inaugurated  to keep an  "ACCURATE" telephone
  5251.     listing of  all publicly  available RBBS-PC  systems.   The success of  this
  5252.     endeavor depends on  you.  If  you would like  a chance to  stand up and  be
  5253.     recognized, please fill out and return the following form:
  5254.           +--------------------------------------------------------------+
  5255.           | To: Jon Martin                   RBBS-PC National Listing    |
  5256.           |     4396 N. Prairie Willow Ct.   Service (if any, and none is|
  5257.           |     Concord, California          implied or promised by this |
  5258.           |                    94521         offer)                      |
  5259.           |--------------------------------------------------------------|
  5260.           |Please  REMOVE    CHANGE    ADD   Date Requested:             |
  5261.           |(circle one) to your Listing.     Date Action Taken:          |
  5262.           |--------------------------------------------------------------|
  5263.           |SYSOP's Name:                                                 |
  5264.           |--------------------------------------------------------------|
  5265.           |DATA Phone Number  (required): (      )        -              |
  5266.           |VOICE Phone Number (optional): (      )        -              |
  5267.           |Do NOT publish my VOICE number (please check) _____           |
  5268.           |--------------------------------------------------------------|
  5269.           |Exact Street Address (no P.O. Box or P.O. Zip Code accepted)  |
  5270.           |(Address will not be published. For my information only.)     |
  5271.           |                                                              |
  5272.           |--------------------------------------------------------------|
  5273.           | City                            | State                      |
  5274.           |                                 |                            |
  5275.           |--------------------------------------------------------------|
  5276.           | Signature (required):           | ZIP Code for Street Address| 
  5277.           |                                 |                            |
  5278.           |                                 |                            |
  5279.           +--------------------------------------------------------------+
  5280.           | Detailed System Information                                  |
  5281.           | RBBS Name          :_________________________________________|
  5282.           | Operating Hrs.(EST):_________________________________________|
  5283.           | Specialty of RBBS  :_________________________________________|
  5284.           | Baud Rates         :_________________________________________|
  5285.           | Number of Nodes    :_________________________________________|
  5286.           | Modem Vendor/Model :_________________________________________|
  5287.           | Computer Type      :_________________________________________|
  5288.           | Memory             :_________________________________________|
  5289.           | Multi-Function Card:_________________________________________|
  5290.           | Monitor Vendor/Type:_________________________________________|
  5291.           | Disk Storage       :_________________________________________|
  5292.           | Special Cards      :_________________________________________|
  5293.           | DOS Version        :_________________________________________|
  5294.           | Related Software   :_________________________________________|
  5295.           |--------------------------------------------------------------|
  5296.           | Additional information/comments:                             |
  5297.           |                                                              |
  5298.           +--------------------------------------------------------------+
  5299.  
  5300.     RBBS-PC CPC17-2A                                                Page 258
  5301.  
  5302.     APPENDIX L -- The Ark-Paradyne Modem RBBS-PC Switch Settings
  5303.     ------------------------------------------------------------
  5304.     The ARK Modem is  somewhat Hayes compatible, therefore some changes  must be
  5305.     made to use this modem.  Because of major improvements in RBBS-PC, the modem
  5306.     can now be  used in both of  its modes, Normal and  Hayes. To use the  HAYES
  5307.     (tm) mode follow this procedure: 
  5308.  
  5309.     A.) Using CONFIG.EXE supplied with RBBS-PC,  select and change the following
  5310.        parameters: 
  5311.  
  5312.     Parameter 224  Number of rings to wait before answering -------- 1
  5313.                    Do you want ringback? (YES/NO) ----------------- NO
  5314.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  5315.                    1. Reset the modem ------ : ATZ or ATV0Z
  5316.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  5317.                         (Note the use of "Q0" to initialize the modem)
  5318.                    3,4,5  Use the defaults supplied
  5319.     Parameter 227  Issue modem commands between rings ------------ YES
  5320.     Parameter 228  Baud rate to initially open modem at --------- 2400
  5321.     Parameter 237  Leave modem at initial baud rate --------------- NO
  5322.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  5323.     Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  5324.  
  5325.     For the ARK 24K (not 24K PLUS) use the following switch & jumper settings:
  5326.  
  5327.             Switch 1 UUUDDUUD    (where U = Up = On and  D = Down = Off)
  5328.             Switch 2 UDDDDUDD
  5329.             Switch 3 DUUDUUUU
  5330.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  5331.             JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  5332.  
  5333.     For the ARK 24K PLUS use the following:
  5334.  
  5335.             Switch 1 UUUDDUUD    last down = Hayes mode                   
  5336.             Switch 2 UDDDDUDD    first up = auto answer off
  5337.             Switch 3 DUUDUDDD    last three down = "auto baud"
  5338.             Modem Jumpers - Use the factory defaults on all
  5339.  
  5340.     B.) You  can also use the  ARK NORMAL mode  with a fixed terminal  rate. The
  5341.     modem talks to RBBS at 2400 and talks  to your user at 300, 1200, 2400.  One
  5342.     problem noted  was that  upon return  from dropping  to DOS,  the baud  rate
  5343.     reverted back  to 2400.  If you  were remote  and using a  1200 baud  modem,
  5344.     things get very messy.  It has been  noted with some external protocols that
  5345.     a similar problem  exists.  I  don't recommend this  setting unless you  are
  5346.     willing  to take some  risks.   You must  also use flow  control.   Make the
  5347.     settings as follows:
  5348.  
  5349.     Parameter 224  Number of rings to wait before answering -------- 1      
  5350.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  5351.                    1. Reset the modem ------ : ATV0Z                    
  5352.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  5353.                    3,4,5  Use the defaults supplied
  5354.     Parameter 227  Issue commands between rings ------------------ YES
  5355.     Parameter 228  Baud rate to initially open modem at --------- 2400
  5356.     Parameter 237  Leave modem at initial baud rate -------------- YES   
  5357.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) --- YES  
  5358.     Parameter 245  Modem flow control uses XON/XOFF -------------- YES
  5359.  
  5360.     The following is recommended for the ARK 24K Modem:
  5361.  
  5362.     RBBS-PC CPC17-2A                                                Page 259
  5363.  
  5364.             Switch 1 UUUDDUUU     (NOTE 8th position)  +++
  5365.             Switch 2 UDDDDUDD                             
  5366.             Switch 3 DUUDUUUU
  5367.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  5368.             JUMPERS         E9-E10        E15-E16      E4-E7     E11-E14
  5369.  
  5370.     The following is recommended for the ARK 24K Plus Modem:
  5371.  
  5372.             Switch 1 UUUDDUUU    
  5373.             Switch 2 UDDDDUDD                             
  5374.             Switch 3 DUUDUUUU
  5375.  
  5376.     C.) You can also use the Hayes mode with rings set to zero but you can't use
  5377.     Doors or Sysop drop to DOS.  (This mode has proven to be very reliable)
  5378.  
  5379.     Parameter 224  Number of rings to wait before answering -------- 0 
  5380.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  5381.                    1. Reset the modem ------ : ATZ
  5382.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=1
  5383.                    3,4,5  Use the defaults supplied
  5384.     Parameter 227  Issue commands between rings ------------------ YES
  5385.     Parameter 228  Baud rate to initially open modem at --------- 2400
  5386.     Parameter 237  Leave modem at initial baud rate --------------  NO
  5387.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  5388.     Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  5389.  
  5390.     The following is recommended for the ARK 24K Modem:
  5391.  
  5392.             Switch 1 UUUDDUUD   (note 8th position)
  5393.             Switch 2 DDDDDUDD   (note 1st position)
  5394.             Switch 3 DUUDUUUU
  5395.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  5396.             JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  5397.  
  5398.     The following is recommended for the ARK 24K Plus Modem:
  5399.  
  5400.             Switch 1 UUUDDUUD 
  5401.             Switch 2 UDDDDUDD 
  5402.             Switch 3 DUUDUDDD
  5403.  
  5404.     Technical comments on the Ark Modems for your interest.
  5405.     1. Ark Modems can't accept any  commands if the "AA" (auto answer) light  is
  5406.     on and the phone is ringing until the  number of rings equals the number set
  5407.     in the S0 register.  RBBS-PC expects to issue a "modem answer command"  when
  5408.     it detects a ring and is ready.  If the Ark modem can't accept this command,
  5409.     it won't answer the phone.  You therefore cannot use the ring-back system or
  5410.     answer on a ring greater than 1. 
  5411.     2. Another interesting  difference is that when  the modem is in  the "quiet
  5412.     mode" (Q1) NO results will be sent to the computer.  If we inquire as to the
  5413.     number of rings received, it responds with absolutely nothing. 
  5414.     3. In  the Ark  Normal mode,  if  you enter  a reset  command ATZ  or Z,  it
  5415.     requests a confirmation of  "Confirm (Y/N) >" and you must enter a Y or else
  5416.     it does nothing.  We  can get around this with a   ATV0Z  which tricks  this
  5417.     into an un-conditional reset. 
  5418.     4. If you attempt to operate in the ARK NORMAL mode at 2400 baud and set the
  5419.     DTE/CLOCK jumper to  E8-E9, the  modem will  "downshift" to a  baud rate  to
  5420.     match the caller,  which is normal.  Assuming you downshift  to 300 baud you
  5421.     must reset  it with a ATZ at 300 Baud.    RBBS resets it at the initial rate
  5422.     of  2400  baud and  therefore the  modem  is "hung".  Obviously this  is not
  5423.     recommended. 
  5424.  
  5425.     RBBS-PC CPC17-2A                                                Page 260
  5426.  
  5427.      
  5428.     The  following modems were tested:  24K -  ROM versions 2.21, 2.23, 2.31 24K
  5429.     PLUS - ROM ver 3.63.
  5430.  
  5431.     If you have questions on this modem contact:
  5432.  
  5433.         Dave Hacquebord,
  5434.         Sunshine Bulletin board,
  5435.         Tampa, Fl.
  5436.         Voice: 1-813-884-4267
  5437.         Data:  1-813-887-3984
  5438.  
  5439.     RBBS-PC CPC17-2A                                                Page 261
  5440.  
  5441.     APPENDIX M -- RBBS-PC And the Anchor Signalman Express (MK12)
  5442.     -------------------------------------------------------------
  5443.     The following are the switch and jumper settings for the Modem.
  5444.  
  5445.         Switch 1 = Off
  5446.         Switch 2 = Off
  5447.         Switch 3 = On
  5448.         Switch 4 = On
  5449.         Switch 5 = On
  5450.         Switch 6 = On
  5451.         Switch 7 = On
  5452.         Switch 8 = On
  5453.  
  5454.     RBBS-PC CPC17-2A                                                Page 262
  5455.  
  5456.     APPENDIX N -- The Everex 2400 modem RBBS-PC switch settings
  5457.     -----------------------------------------------------------
  5458.     The Everex Evercom 24 is an internal 2400 BAUD modem.  It has 4  switches on
  5459.     the mounting bracket.  If you are  using COM1 then all switches should be in
  5460.     the OFF position.  If you are using COM2 see  the Installation Guide for the
  5461.     correct switch settings.
  5462.  
  5463.     The Evercom does  not have non-volatile memory  like the Hayes 2400  and the
  5464.     ATZ command will reset  the modem to factory defaults.   It is therefore not
  5465.     necessary  to use CONFIG  to set the  Hayes 2400 defaults.   Because of this
  5466.     major  difference you must use  CONFIG parameter 225  to change the standard
  5467.     modem defaults.  Select parameters 2 and 5 and enter  the command just as it
  5468.     is but with the addition of &D2.   This will instruct RBBS-PC to add &D2  to
  5469.     the  standard modem  initialization string  each time  the  system recycles.
  5470.     Please note that  although the Evercom 24  manual indicates that &D2  is the
  5471.     default that this is a misprint in their manual and &D0 is  the real default
  5472.     for the &D  command.  Parameter  7 can be  ignored since they  this  is  for
  5473.     battery backed up modems only. 
  5474.  
  5475.     NOTE:  Make  sure that &D2 is  inserted immediately following the  "AT" when
  5476.     modifying parameters 2 and 5 of parameter 225!
  5477.  
  5478.     A special thanks goes to Carl Margolis  (Everex) for his help in identifying
  5479.     these restrictions so that Evercom 24 users can now reliably use RBBS-PC.
  5480.  
  5481.     Do not select parameter 225 if you are using an Everex 1200 BAUD modem.
  5482.  
  5483.     RBBS-PC CPC17-2A                                                Page 263
  5484.  
  5485.     APPENDIX O -- Prometheus 2400G modem RBBS-PC switch settings
  5486.     ----------------------------------------------------------------
  5487.     Underneath the  2400G is a  bank of 10  switches that set  certain operating
  5488.     characteristics of the ProModem 2400G.  Only 3  (1,2 & 10) of these switches
  5489.     are currently implemented.   The others  are reserved for future  expansion.
  5490.     All three  of these switches must  be in the  off position for the  2400G to
  5491.     function properly with RBBS-PC.
  5492.  
  5493.     RBBS-PC CPC17-2A                                                Page 264
  5494.  
  5495.     APPENDIX P -- US Robotics Modems' RBBS-PC Switch Settings
  5496.     ---------------------------------------------------------
  5497.     Both the US  Robotics COURIER  2400 and  COURIER HST  modem switch  settings
  5498.     should be as follows:
  5499.      1 2 3 4 5 6 7 8 9 10   gang switch
  5500.      U U U D D U U D D D      UUU      (Where U = Up = Off and  D = Down = On)
  5501.  
  5502.     The  Courier  2400 is  a high  quality,  trouble free  modem that  is highly
  5503.     recommended and which works well with all the RBBS-PC defaults.
  5504.  
  5505.     The USR COURIER HST modem switch setting should be as follows:
  5506.      1 2 3 4 5 6 7 8 9 10   gang switch
  5507.      U U U D D U U D D U      UUU      (Where U = Up = Off and  D = Down = On)
  5508.  
  5509.     RBBS-PC  supports both modes of the USR HST  Modems.  In CONFIG, specify the
  5510.     number of seconds between modem commands to be 1.
  5511.  
  5512.     MODE 1:
  5513.     -------
  5514.     In  the first mode of operation,  CONFIG parameter 228 should  be set to the
  5515.     highest speed  you intend to support.  When the HST modem detects a carrier,
  5516.     it sends (at the baud rate set in  parameter 228) an ASCII string to RBBS-PC
  5517.     which contains  the new BAUD rate.  The modem  will change it's baud rate to
  5518.     match that of  the caller's and RBBS-PC will correctly adjust to the modem's
  5519.     new baud rate.  The following CONFIG parameters should be set:
  5520.  
  5521.     Parameter 222 -- set to 3 to allow the modem enough time to initialize
  5522.     Parameter 223 -- set to 2
  5523.     Parameter 227 -- set to NO
  5524.     Parameter 228 -- set to 9600
  5525.     Parameter 237 -- set to NO
  5526.     Parameter 244 -- set to YES
  5527.     Parameter 245 -- set to NO
  5528.  
  5529.     You should also reply  "NO" to parameter 225, CONFIG will show you a menu of
  5530.     8 different modem  commands.  The ONLY command  that needs to be  changed is
  5531.     number 7, "Initialize the modem firmware".  It should be:
  5532.  
  5533.               AT&A1&B0&H1&I0&M4&N0&R2&S1&Y3
  5534.  
  5535.     The meaning of this HST-specific initialization string is as follows:
  5536.     &A1 = Display/ARQ result codes
  5537.     &B0 = DTE/DCE rate follows connection rate
  5538.     &H1 = Hardware (Clear To Send, Pin 5) flow control
  5539.     &I0 = Flow control disabled
  5540.     &M4 = Normal if ARQ connection cannot be made
  5541.     &N0 = Negotiate highest possible link rate with remote modem
  5542.     &R2 = Received data output to terminal on Request to Send high (Pin 4)
  5543.           NOTE:  If your HST 9600 modem responds 961 or greater to the ATI 
  5544.                  command, substitute &R1 for &R2.
  5545.     &S1 = Modem controls Data Set Ready
  5546.     &Y3 = Nondestructive, unexpedited break signal
  5547.  
  5548.     The highest effective data transmission rate in this mode is 9600 baud.
  5549.  
  5550.     MODE 2:
  5551.     -------
  5552.     In  this  second  mode the  USR  Modem  supports  the  MNP data  compression
  5553.     technique which effectively transmits data over the phone at rates in excess
  5554.     of 17K baud.   Setting up your  HST to support both the  standard 300, 1200,
  5555.  
  5556.     RBBS-PC CPC17-2A                                                Page 265
  5557.  
  5558.     2400, and  the higher 9600  and 17K baud rates  requires that the  HST modem
  5559.     speed be "fixed"  at 19.2K baud.   The PC  running RBBS-PC will  communicate
  5560.     with  the HST modem attached  to it at  a fixed rate of  19.2KB.  The actual
  5561.     data  link speed will  default to the  highest rate that  the caller's modem
  5562.     will support. 
  5563.  
  5564.     Parameter 222 -- set to 3 to allow the modem enough time to initialize
  5565.     Parameter 223 -- set to 2
  5566.     Parameter 227 -- set to NO
  5567.     Parameter 228 -- set to 19200
  5568.     Parameter 237 -- set to YES
  5569.     Parameter 244 -- set to YES
  5570.     Parameter 245 -- set to NO
  5571.  
  5572.     You should also reply "NO" to parameter 225,  CONFIG will show you a menu of
  5573.     8 different modem  commands.  The ONLY  command that needs to be  changed is
  5574.     number 7, "Initialize the modem firmware".  It should be:
  5575.  
  5576.               AT&A1&B1&H1&I0&M4&N0&R2&S1&Y3
  5577.  
  5578.     The meaning of this HST-specific initialization string is as follows:
  5579.     &A1 = Display/ARQ result codes
  5580.     &B1 = DTE/DCE rate is fixed at allowable rate
  5581.     &H1 = Hardware (Clear To Send, Pin 5) flow control
  5582.     &I0 = Flow control disabled
  5583.     &M4 = Normal if ARQ connection cannot be made
  5584.     &N0 = Negotiate highest possible link rate with remote modem
  5585.     &R2 = Received data output to terminal on Request to Send high (Pin 4)
  5586.           NOTE:  If your HST 9600 modem responds 961 or greater to the ATI 
  5587.                  command, substitute &R1 for &R2.
  5588.     &S1 = Modem controls Data Set Ready
  5589.     &Y3 = Nondestructive, unexpedited break signal
  5590.  
  5591.     This will enable the  COURIER HST to  use the built-in  MNP protocol at  the
  5592.     highest possible baud rate that can be  negotiated with the calling modem --
  5593.     providing the  calling  modem is  also a  COURIER HST  modem.   The  highest
  5594.     effective data transmission rate in this mode is 17200 baud.
  5595.  
  5596.     After replying NO  to CONFIG parameter  225 and changing the  initialization
  5597.     modem command as described above for either MODE 1 or MODE 2 for the COURIER
  5598.     HST, CONFIG  parameter 231  should be  selected in  order to  initialize the
  5599.     COURIER HST.    This places  the setting  in the  HST's non-volatile  random
  5600.     access memory  (NVRAM) and  need only be  repeated if  the NVRAM  is changed
  5601.     (i.e. you use the modem with applications other than RBBS-PC that change the
  5602.     NVRAM).
  5603.  
  5604.     For the COURIER 2400,  set CONFIG parameter  228 to 2400.   For the  COURIER
  5605.     HST, set parameter 228 as specified above for either MODE 1 or MODE 2.
  5606.  
  5607.     RBBS-PC CPC17-2A                                                Page 266
  5608.  
  5609.     APPENDIX Q -- RBBS-PC and the FASTCOMM 2496 Turbo Modem
  5610.     -------------------------------------------------------
  5611.     The  FASTCOMM  2496 9600  and 19200  baud modems  work with  RBBS-PC without
  5612.     modifications to RBBS-PC.
  5613.  
  5614.     However  some  unusual quirks were noted with the  FASTCOMM  hardware.   The
  5615.     modems   would  NOT  follow terminal baud rate in the command  mode  if  the
  5616.     transition was from 300 to 9600 (or 19,200) baud.    Therefore,  if  RBBS-PC
  5617.     were  configured to initially operate at 9600 baud,  it would  not  properly
  5618.     reset after a 300  baud call.   It would,  however, follow all other changes
  5619.     within  the range of RBBS-PC.   If  it was configured to initially answer at
  5620.     both  2400  and  4800  baud  and it  worked   equally  well  with  calls  at
  5621.     300, 1200, 2400, 4800,   9600  and 19200 baud for  both cases.     Therefore
  5622.     set CONFIG parameter 208 to 2400 baud!
  5623.  
  5624.     It  is recommended that CONFIG parameter 224 be set to answer on  one ring!
  5625.  
  5626.     Specific instructions for modem set up are as follows:
  5627.  
  5628.     1.  Using  the  BASIC  program  SETFC.BAS  below,  set   the  default  modem
  5629.     settings.    This    can  also  be done manually   from  a    communications
  5630.     program.     The   speed  that is  used to  establish   the  default   modem
  5631.     settings  is the speed  to which the modem defaults on reset  and  power on.
  5632.      It is best to  do this setup at the  same speed that RBBS-PC  uses as   its
  5633.     default speed, namely 2400 baud.  In any case do not do it  at 9600 baud.
  5634.  
  5635.     2.  Tell   RBBS-PC  to  open the  modem  at 2400  baud  by  setting   CONFIG
  5636.     parameter 208 to 2400 baud.
  5637.  
  5638.     3.   Use  CONFIG parameter 225 to change  the modem reset command from "ATZ"
  5639.     to "AAATZ".
  5640.  
  5641.         This string of A's resets the modem to the terminal  baud rate so it can
  5642.     respond  to the other  commands.    If you want  to experiment,   watch  the
  5643.     modem   respond   to  you   when you change baud  rates  in   your  favorite
  5644.     communications  program.      This  modem   function  is   referred  to   as
  5645.     "autobaud".  You will probably not see the first "A" echo and sometimes  not
  5646.     the  second.  You  should always see the third  "A".    Others  have advised
  5647.     that their modems would "autobaud" from 300 to 9600 baud.  Mine would not.  
  5648.  
  5649.     4.  Use CONFIG parameter 225 to change the modem answer string to include X2
  5650.     instead of X1 (the CONFIG default).
  5651.  
  5652.     Stan Staten  has extensive  experience with  RBBS-PC and  the FASTCOMM  2496
  5653.     modems.  If  you have any questions  regarding their use with  RBBS-PC, give
  5654.     Stan's RBBS-PC system a call at (301) 869-7650.
  5655.  
  5656.     On the next page is STAN's SETFC.BAS  program's BASIC source code to set the
  5657.     FASTCOMM  modem.   It can  be  run under  the BASIC  interperter  or can  be
  5658.     compiled using  QuickBASIC from  Microsoft.   SETFC.EXE and SETFC2.EXE  (for
  5659.     COM2:) can be downloaded from Stan's BBS.
  5660.  
  5661.     RBBS-PC CPC17-2A                                                Page 267
  5662.  
  5663.     10   'title: 'SETFC.BAS, Copyright 1986 by H. Stanley Staten 
  5664.     20   'SYSOP 3 WINKs BBS, 301-670-9621
  5665.     30   '
  5666.     40      DEFINT A-Z 
  5667.     50      CLEAR 
  5668.     60  ' 
  5669.     70  ' ********************************************************************
  5670.     80  ' * ROUTINE TO INITIALIZE THE FASTCOMM 2496 MODEM'S FIRMWARE         * 
  5671.     90  ' ******************************************************************** 
  5672.     100  '
  5673.     110  COM.PORT$ = "COM1"                 'Change to "COM2:" for COM2: use 
  5674.     120  PRINT "Setting FASTCOMM 2496 firmware for RBBS-PC on " + COM.PORT$ 
  5675.     130  ' 
  5676.     140  '  ********************************************************************
  5677.     150  ' *                                                                   *
  5678.     160  ' * INITIALIZE THE FASTCOMM 2496 VOLATILE MEMORY.  SET as follows    *
  5679.     170  ' *                                                                  *
  5680.     180  ' *         AT#F       = Set to factory defaults                     *
  5681.     190  ' *         AT#LCN     = Set carrier detect to normal                 *
  5682.     200  ' *         AT#LDN     = Set DTR to normal                           * 
  5683.     210  ' *         AT#LX2     = Set for XON/XOFF flow control               * 
  5684.     220  ' *         ATS7=30    = Set wait for answer tone to 30 seconds      * 
  5685.     230  ' *         ATM0       = Turn speaker off                            * 
  5686.     240  ' *         ATV1       = Issue long form of results codes            * 
  5687.     250  ' *         ATX2       = Full result messages                        * 
  5688.     260  ' *         ATS57=1    = Hang up and reset automatically executed    * 
  5689.     270  ' *         ATE0       = Do not echo modem commands back to the PC   * 
  5690.     280  ' *         ATS10=10   = To cause to reset on loss of carrier faster * 
  5691.     290  ' *         ATS58=3    = Force a 19200 Baud call to 9600 Baud locally*
  5692.     300  ' *         ATS22=46   = Suggested by the vendor                     *
  5693.     310  ' *         ATS0=0     = Don't answer until told to.                 *
  5694.     320  ' *         AT#W       = Write settings to non volatile memory       *
  5695.     330  ' *                                                                  *
  5696.     340   ' ********************************************************************
  5697.  
  5698.     350  ' 
  5699.     360  OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3  
  5700.     370  PRINT #3,"AAAAAAAT" 
  5701.     380  PRINT #3,"AT#F" 
  5702.     390  PRINT #3,"AT#LCN" 
  5703.     400  PRINT #3,"AT#LDN" 
  5704.     410  PRINT #3,"AT#LX2" 
  5705.     420  PRINT #3,"ATS7=30" 
  5706.     430  PRINT #3,"ATM0" 
  5707.     440  PRINT #3,"ATV1" 
  5708.     450  PRINT #3,"ATX2" 
  5709.     460  PRINT #3,"ATS57=1" 
  5710.     470  PRINT #3,"ATE0" 
  5711.     480  PRINT #3,"ATS10=10" 
  5712.     490  PRINT #3,"ATS58=3" 
  5713.     500  PRINT #3,"ATS22=46" 
  5714.     510  PRINT #3,"ATS0=0" 
  5715.     520  PRINT #3,"AT#W" 
  5716.     530  SYSTEM 
  5717.  
  5718.     RBBS-PC CPC17-2A                                                Page 268
  5719.  
  5720.     APPENDIX R -- RBBS-PC and the ZOOM Modem HC2400
  5721.     -----------------------------------------------
  5722.     In order to use the "ZOOM HC2400" modem with RBBS-PC parameter 225 should be
  5723.     changed as shown below.  Only #2 and #5 need to be changed.
  5724.  
  5725.     Changes in #2.  Add '&D2' just after  'AT'.  Change 'S2=255' to 'S2=43'.
  5726.  
  5727.     Change  in #5.  Add "&D2' just after  'AT'.
  5728.  
  5729.     1. Reset the modem                : ATZ
  5730.     2. Initialize the modem           : AT&D2M0Q1S2=43S10=30E0Q0X1S0=0
  5731.        Note: End item 2 with:
  5732.          S0=1Q0X1 if answer on 0 rings
  5733.          S0=254 if answer on >0 rings (no ring-back)
  5734.          S0=255 if answer on >0 rings (with ring-back)
  5735.     3. Count the number of rings      : ATS1?
  5736.     4. Answer the phone               : ATQ0X1V1A
  5737.     5. Take the phone off the hook    : AT&D2Q1E1H1M0
  5738.     6. Clear the modem's firmware     : AT&F
  5739.     7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  5740.        Note: End item 7 with:                                                   
  5741.        
  5742.          Q1 if  item 2 ends with S0=255                                         
  5743.        
  5744.     8. Write to modem's firmware      : &W
  5745.  
  5746.     For further information contact:
  5747.     Jeff L. Watts
  5748.     STATESVILLERBBS-PC  Data # (704) 873-8482
  5749.  
  5750.     RBBS-PC CPC17-2A                                                Page 269
  5751.  
  5752.     APPENDIX S -- RBBS-PC And The AT's RS-232 Cable
  5753.     -----------------------------------------------
  5754.     The RS-232 serial connector is different for the AT than the PC or XT.   The
  5755.     AT  uses a  connector  called  a DB-9,  which  is a  9  pin  connector.   An
  5756.     alternative to buying  the AT serial cable  from IBM, ($65-$80), is  to make
  5757.     your own.  A ten-wire cable  can be purchased from any local computer  store
  5758.     for about $.80 per foot, and the  DB-9 and RS-232 connectors with hoods  can
  5759.     be purchased from Radio  Shack.  The total  cost should be about $12.00.   A
  5760.     modem hooked up to  the AT will work fine  with the 9 pins connected  in all
  5761.     terminal functions, except for auto-answer applications such as RBBS-PC.
  5762.  
  5763.     RBBS-PC requires pin 1 from the modem to be hooked  up to the chassis ground
  5764.     on the AT  or it can't answer the phone.  There are  two ways to hook up the
  5765.     ground wire on  the computer end.  The  first way is to use  a metal hood to
  5766.     cover the DB-9 connector.  Wrap a bare wire that is attached to pin 1 of the
  5767.     RS-232 connector  around the cable on the DB-9 end.   When the metal hood is
  5768.     screwed down over the cable a connection will be made.  When using a plastic
  5769.     DB-9  hood simply solder a  wire from pin  1 on the RS-232  end to the metal
  5770.     body of  the DB-9  connector.   Since documentation  is scarce  for the  AT,
  5771.     following figure lists  the necessary pin  connections for those wanting  to
  5772.     make their own AT RS-232 cable.
  5773.  
  5774.        DB-9       RS-230
  5775.     (Computer     (Modem           Description
  5776.        End)        End)
  5777.     =========    =======        ==================
  5778.  
  5779.      GROUND -------- 1 -------- Protective Ground
  5780.        1    -------- 8 -------- Data Carrier Detect
  5781.        2    -------- 3 -------- Receive Data
  5782.        3    -------- 2 -------- Transmit Data
  5783.        4    ------- 20 -------- Data Terminal Ready
  5784.        5    -------- 7 -------- Signal Ground
  5785.        6    -------- 6 -------- Data Set Ready
  5786.        7    -------- 4 -------- Request to Send
  5787.        8    -------- 5 -------- Clear to Send
  5788.        9    ------- 22 -------- Ring Indicator
  5789.  
  5790.     RBBS-PC CPC17-2A                                                Page 270
  5791.  
  5792.     APPENDIX T -- RBBS-PC And BASIC Compiler Patches for "Doors"
  5793.     ------------------------------------------------------------
  5794.     Both the IBM Version 2.0 BASIC  compiler and Microsoft's QuickBASIC compiler
  5795.     offers a  lot of needed  features to compiled BASIC  programs.  Regrettably,
  5796.     they also included  a few "problems."
  5797.  
  5798.     For  those who use  RBBS-PC to "exit"  to DOS (either  via a "door"  or as a
  5799.     remote SYSOP),  the code generated by  the new BASIC compilers  would "help"
  5800.     you by dropping  carrier when you chose to  return to RBBS-PC from  DOS or a
  5801.     "door."  Help like this RBBS-PC didn't need.
  5802.  
  5803.     Jeff  Porter was the first to  document a six step  "patch" to the IBM BASIC
  5804.     Version  2.0  compiler  and to  BCOM10.LIB  of  the  QuickBASIC Version  1.0
  5805.     compiler that corrects this  problem within the logic of the  code generated
  5806.     by the QuickBASIC compiler.  Subsequently, Rod Bowman of  "The PC Spectrum",
  5807.     (714) 945-2612,, subsequently, provided similar patches to the BCOM20.LIB of
  5808.     the QuickBASIC Version 2.0 and 2.01 compiler.
  5809.  
  5810.     As I stated earlier:
  5811.  
  5812.          "RBBS-PC continues to grow and expand because hundreds 
  5813.           (and quite possibly thousands) of SYSOP's spend the 
  5814.           time and trouble not only to modify RBBS-PC to meet
  5815.           their needs, but also to share these modifications 
  5816.           with others."
  5817.  
  5818.     Please note that nowhere  in the following documentation does  Jeff describe
  5819.     the hours and hours it must have taken  him to find the fix to the  problem.
  5820.     Nowhere does he ask anything for himself for his efforts.  As I have said so
  5821.     often "I am very proud of the company that RBBS-PC keeps."
  5822.  
  5823.     1.  DTR Patches for the QuickBASIC Version 1.x through 3.0 Compilers
  5824.     --------------------------------------------------------------------
  5825.     As anyone who has tried to write any programs that use  COM1:  or COM2: with
  5826.     MicroSoft QuickBasic  knows, the DTR  modem control  line is   dropped every
  5827.     time a communication  file is opened or  closed. The original patch  for the
  5828.     BASIC  compiler  was developed  by  Jeff  Porter.   Subsequently  Rod Bowman
  5829.     supplied patches for the  QuickBASIC compilers that  followed.  The 10  step
  5830.     procedure (7 if you have QuickBASIC 2.0 or above) is as follows:
  5831.  
  5832.      1. Copy BCOMxx.LIB to BCOMxxBK.LIB where:
  5833.  
  5834.               xx = 10 for QuickBASIC Version 1.0, 1.1, and 1.2
  5835.                  = 20 for QuickBASIC Version 2.0 and 2.01
  5836.                  = 30 for QuickBASIC Version 3.0
  5837.  
  5838.      2. Run DEBUG and load BCOMxx.LIB with the command:
  5839.  
  5840.               DEBUG BCOMxx.LIB
  5841.  
  5842.      3. Display the following section of data with the command
  5843.  
  5844.               -dZZZZ L 10
  5845.  
  5846.          where ZZZZ = 0540 for QuickBASIC Version 1.0, 1.1, and 1.2
  5847.                     = D368 for QuickBASIC Version 2.0
  5848.                     = D858 for QuickBASIC Version 2.01
  5849.                     = DC08 for QuickBASIC Version 3.0
  5850.  
  5851.      4. Verify the data displayed contains the following sequence
  5852.  
  5853.     RBBS-PC CPC17-2A                                                Page 271
  5854.  
  5855.  
  5856.         nnnn:ZZZZ  83 C2 04 32 C0 EE EB
  5857.  
  5858.         If the data displayed contains the above sequence of numbers (they  may
  5859.         be contained within the other numbers displayed), continue.  Otherwise,
  5860.         go to section 2.
  5861.  
  5862.      5. Assemble in the correct instructions for the patch as follows:
  5863.  
  5864.         Enter the command "-a QQQQ"
  5865.  
  5866.          where QQQQ = 054C for QuickBASIC Version 1.0, 1.1, and 1.2
  5867.                     = D36B for QuickBASIC Version 2.0
  5868.                     = D85B for QuickBASIC Version 2.01
  5869.                     = DC0B for QuickBASIC Version 3.0
  5870.  
  5871.         The  system  will respond with the prompt "nnnn:QQQQ" where  "nnnn"  is
  5872.         what was shown in step 5 and QQQQ is what was entered in step 5.  After
  5873.         this  prompt  enter a space and the instructions "mov  al,  1".   Press
  5874.         enter and at the next prompt hit enter without entering anything.  This
  5875.         second enter informs DEBUG that you are finished assembling.
  5876.  
  5877.      6. If  you  are not patching QuickBASIC Version 1.x, continue to  step  9.
  5878.         For  QuickBASIC Version 1.x, there is a second place that needs  to  be
  5879.         corrected.  Display the following section of data with the command
  5880.  
  5881.               -d830 L 10
  5882.  
  5883.      7. Verify the data displayed contains the following sequence
  5884.  
  5885.         rrrr:0830  83 C2 04 32 C0 EE EB
  5886.  
  5887.         If it doesn't, then go to section 2.  It does continue on
  5888.  
  5889.      8. Assemble in the correct instructions for the patch as follows:
  5890.  
  5891.         Enter  the command "-a 0839".  The system will respond with the  prompt
  5892.         "rrrr:0839"  where  "nnnn"  is what was shown in step  6.   After  this
  5893.         prompt enter a space and the instructions "mov al, 1".  Press enter and
  5894.         at  the next prompt hit enter without entering anything.   This  second
  5895.         enter informs DEBUG that you are finished assembling.
  5896.  
  5897.      9. Now  write the modified BASCOMxx.LIB out by issuing the command "w"  at
  5898.         the prompt (i.e. "-w").
  5899.  
  5900.     10. Finally,  quite  the DEBUG session by issuing the command  "q"  at  the
  5901.         prompt (i.e. "-q").
  5902.  
  5903.     2.  Jeff Porter's DTR Patches for the IBM BASIC Version 2.0 Compiler
  5904.     --------------------------------------------------------------------
  5905.     If   you  do  not  have  MicroSoft QuickBasic or  if  you  have  a different
  5906.     version than  I,  you can probably  still  perform  this patch.    You  will
  5907.     have to find  the correct locations to   patch.  The   addresses  054C   and
  5908.     0839 were  found  with  the  following procedure:
  5909.  
  5910.     1.   Search  for the byte sequence 83 C2 04 32 C0 in the  library 
  5911.          file.   If you are lucky,  debug will find it in exactly two 
  5912.          places.
  5913.          (for example:)
  5914.          -s 100 fff0 83 C2 04 32 C0
  5915.  
  5916.     RBBS-PC CPC17-2A                                                Page 272
  5917.  
  5918.     2.   Unassemble   the  addresses  you  found.    The  first   two 
  5919.          instructions will be
  5920.               ADD  DX, +04
  5921.               XOR  AL, AL
  5922.          Within the next few instructions should be
  5923.               OUT  DX, AL
  5924.     3.   If everything has gone correctly so far, just change the
  5925.               XOR  AL, AL
  5926.          to a
  5927.               MOV AL, 1
  5928.     4.   Perform this change in both places where the 
  5929.               XOR AL, AL          
  5930.          instruction was found.
  5931.     5.   Write the updated file.
  5932.  
  5933.     3.  DTR Patch for the QuickBASIC Version 4.0 Compiler
  5934.     -----------------------------------------------------
  5935.     The following are the instructions for modifying the original QuickBASIC 4.0
  5936.     to keep DTR from dropping when  returning from DOS/DOORS while running RBBS-
  5937.     PC.
  5938.  
  5939.     1.   Make a backup copy of the BCOM40.LIB file, just in case.
  5940.     2.   Run debug and load BCOM40.LIB
  5941.          A>debug bcom40.lib
  5942.     3.   Display  the  following sections of data and see  that  they
  5943.          match.   This is to insure that you are patching the correct
  5944.          version of the library.
  5945.          -d 100 L 5
  5946.          xxxx:0100  F0 OD 00 00 CA
  5947.     4.   xxxx  may  be different for each computer.  Add 850 (hex) to  xxxx  in
  5948.          order  to calculate yyyy.  Remember these are hexadecimal numbers  and
  5949.          this is hexadecimal addition.
  5950.     5.   Search for two occurrences of the offending code.
  5951.          -s yyyy:0 FFFF 83 C2 04 32
  5952.          YYYY:A53F
  5953.          YYYY:A809
  5954.     6.   Unassemble the six bytes of code at the first location.
  5955.          -u YYYY:A53F L 6
  5956.          YYYY:A53F 83C204    ADD  DX,+04
  5957.          YYYY:A542 32C0      XOR  AL,AL
  5958.          YYYY:A544 EE        OUT  DX,AL
  5959.          If this is not what you find, do not proceed further.
  5960.     7.   Now unassemble the six bytes of code at the second location.
  5961.          -u YYYY:A809 L 6
  5962.          YYYY:A809 83C204    ADD  DX,+04
  5963.          YYYY:A80C 32C0      XOR  AL,AL
  5964.          YYYY:A80E EE        OUT  DX,AL
  5965.          If this is not what you find, do not proceed further.
  5966.     8.   Now change the code at the first location by assembling
  5967.          -a YYYY:A542
  5968.          YYYY:A542 MOV AL,1
  5969.          YYYY:A544
  5970.     9.   Now change the code at the second location by assembling
  5971.          -a YYYY:A80C
  5972.          YYYY:A80C MOV AL,1
  5973.          YYYY:A80E
  5974.     10.  The patch is complete -- write the file back to disk and quit debug.
  5975.          -w
  5976.          Writing  331DD BYTES
  5977.          -q
  5978.  
  5979.     RBBS-PC CPC17-2A                                                Page 273
  5980.  
  5981.  
  5982.     This  patch  was  developed by Rod Bowman of The  PC-Spectrum  RBBS-PC  and
  5983.     documented by Jon Martin of the AIRCOMM RBBS-PC (415) 689-2090.
  5984.  
  5985.     The  original  QuickBASIC  Version  4.0  has  a  know  bug  that  precludes
  5986.     applications  that  SHELL  to other applications  when  both  the  SHELLing
  5987.     application  the  application  SHELLed to access  the  communication  port.
  5988.     Therefore, RBBS-PC is distributed compiled under Version 3.0 of QuickBASIC.
  5989.     The  practical  effect of this QB4 bug is that the external  file  transfer
  5990.     programs  can't be SHELLed to from RBBS-PC when RBBS-PC has  been  compiled
  5991.     with QB4.
  5992.  
  5993.     This DTR patch for QB4 does NOT fix the Microsoft SHELL problem in QB4!
  5994.  
  5995.     After  QuickBASIC  Version 4.0 was initially  released,  Microsoft  started
  5996.     shipping   a  QuickBASIC  Version  4.0B  that  does  have  the  DTR   patch
  5997.     incorporated  in it and "may" fix the SHELLing problem.  However, this  has
  5998.     not yet been verified by RBBS-PC.
  5999.  
  6000.     4.  Patch for QuickBasic 4.5
  6001.     ----------------------------
  6002.  
  6003.     QuickBasic  4.5  is the  first  version  QuickBasic not  to  drop DTR  after
  6004.     terminating.   Unfortunately, it does still  drop DTR on some  computers and
  6005.     some modems.  The following patch was provided by Kenny Gardner,  The Crow's
  6006.     Nest BBS, (714) 493-3819.
  6007.  
  6008.     Sound  programming practices  dictate that  when you  directly manipulate  a
  6009.     hardware port, you  restore that port  to the exact  same conditions it  had
  6010.     prior to your touching it.  In the case of DTR, this means  that if DTR were
  6011.     ON when the QB program loaded, then DTR should remain ON when the QB program
  6012.     ends.  If DTR was  OFF when the program loaded, then fine, turn  it OFF when
  6013.     the program ends. 
  6014.      
  6015.     To the end that it is an ongoing struggle  to get Microsoft to listen to the
  6016.     needs of the programmer, the following patches are provided to enable you to
  6017.     patch your copies of BRUN45.EXE and BCOM45.LIB.
  6018.      
  6019.     Before beginning, make sure you have backup copies of BRUN45.EXE 
  6020.     and BCOM45.LIB. 
  6021.       
  6022.     BCOM45.LIB DTR Patch 
  6023.     -------------------- 
  6024.       
  6025.     With Debug in a DOS path, type : 
  6026.      
  6027.       debug bcom45.lib 
  6028.       
  6029.     Type : 
  6030.       
  6031.       s cs:0 ffff b0 00 e3 01 
  6032.       
  6033.     Debug should show : 
  6034.       
  6035.       xxxx:1529 
  6036.       
  6037.       where xxxx can be any number depending upon where Debug loaded the 
  6038.       program into memory.  In any case, the number is not important. 
  6039.       
  6040.     Type : 
  6041.  
  6042.     RBBS-PC CPC17-2A                                                Page 274
  6043.  
  6044.       
  6045.       u 1529 
  6046.       
  6047.     Debug should show : 
  6048.       
  6049.       MOV   AL,00 
  6050.       JCXZ  152E 
  6051.       INC   AX 
  6052.       ADD   DX,+04 
  6053.       OUT   DX,AL 
  6054.       
  6055.     This is where QB graciously resets the comm port to parameters it thinks 
  6056.     the comm port should have. 
  6057.       
  6058.     To fix the problem, Type : 
  6059.       
  6060.       a 1529 
  6061.       
  6062.       mov   al,01 
  6063.       [Enter] 
  6064.       
  6065.       a 152d 
  6066.       
  6067.       nop 
  6068.       [Enter] 
  6069.       
  6070.       where [Enter] is the Enter key (do not type the characters)! 
  6071.       
  6072.       
  6073.     To verify that you typed everything correctly, Type 
  6074.       
  6075.       u 1529 
  6076.      
  6077.     Debug should show : 
  6078.      
  6079.       MOV   AL,01 
  6080.       JCXZ  152E 
  6081.       NOP 
  6082.       ADD   DX,+04 
  6083.       OUT   DX,AL 
  6084.       
  6085.       
  6086.     To save the corrections Type : 
  6087.       
  6088.       w 
  6089.       
  6090.     Debug should show : 
  6091.       
  6092.       Writing 35EF7 bytes 
  6093.      
  6094.       
  6095.     Now type Q and you are finished patching BCOM45.LIB 
  6096.       
  6097.      
  6098.      
  6099.     BRUN45.EXE DTR Patch 
  6100.     -------------------- 
  6101.      
  6102.     First, rename BRUN45.EXE to BRUN45.X 
  6103.       
  6104.  
  6105.     RBBS-PC CPC17-2A                                                Page 275
  6106.  
  6107.     With Debug in a DOS path, type : 
  6108.      
  6109.       debug BRUN45.X 
  6110.      
  6111.     Type : 
  6112.       
  6113.       s cs:0 ffff b0 00 e3 01 
  6114.       
  6115.     Debug should show : 
  6116.       
  6117.       xxxx:9E78 
  6118.       
  6119.       where xxxx can be any number depending upon where Debug loaded the 
  6120.       program into memory.  In any case, the number is not important. 
  6121.       
  6122.     Type : 
  6123.       
  6124.       u 9e78 
  6125.       
  6126.     Debug should show : 
  6127.       
  6128.       MOV   AL,00 
  6129.       JCXZ  9E7D 
  6130.       INC   AX 
  6131.       ADD   DX,+04 
  6132.       OUT   DX,AL 
  6133.       
  6134.     This is where QB graciously resets the comm port to parameters it thinks 
  6135.     the comm port should have. 
  6136.       
  6137.     To fix the problem, Type : 
  6138.       
  6139.       a 9e78 
  6140.       
  6141.       mov   al,01 
  6142.       [Enter] 
  6143.       
  6144.       a 9e7c 
  6145.       
  6146.       nop 
  6147.       [Enter] 
  6148.       
  6149.       where [Enter] is the Enter key (do not type the characters)! 
  6150.       
  6151.       
  6152.     To verify that you typed everything correctly, Type 
  6153.       
  6154.       u 9e78 
  6155.      
  6156.     Debug should show : 
  6157.      
  6158.       MOV   AL,01 
  6159.       JCXZ  9E7D 
  6160.       NOP 
  6161.       ADD   DX,+04 
  6162.       OUT   DX,AL 
  6163.       
  6164.     To save the corrections Type : 
  6165.       
  6166.       w 
  6167.  
  6168.     RBBS-PC CPC17-2A                                                Page 276
  6169.  
  6170.       
  6171.     Debug should show : 
  6172.       
  6173.       Writing 12E80 bytes 
  6174.      
  6175.     Now type Q and you are finished patching BRUN45.X 
  6176.       
  6177.     Rename BRUN45.X back to BRUN45.EXE 
  6178.  
  6179.     5.  DTR Patch for the BASIC Version 6.0 Compiler
  6180.     -----------------------------------------------------
  6181.     This is a patch for BASCOM 6.0 that corrects the DTR/carrier drop  problem.
  6182.     Bob Eyer developed it and Steve Kling verified that the patch work.   There
  6183.     are  two  places in BASCOM's BCOM60ER.LIB that need patching.   Each  place
  6184.     requires a substitution for the following code:
  6185.  
  6186.            83C204        ADD      DX, +04
  6187.            32C0          XOR      AL, AL
  6188.            EE            OUT      DX,AL
  6189.  
  6190.     Just as in QB 1.x, the statement XOR AL, AL has to be changed to MOV AL, 1.
  6191.     First make a backup of BCOM60ER.LIB.  Using Norton (or any good sector  mod
  6192.     program),  search  for  83C20432C0EE.  This string  only  occurs  twice  in
  6193.     BCOM60ER.LIB  unlike QB, so any match needs patching.  When  found,  change
  6194.     32C0  to  B001 and do it again.  B001 is the opcode for MOV AL,  1  whereas
  6195.     from above you can see that 32C0 is XOR AL,AL.
  6196.  
  6197.     RBBS-PC CPC17-2A                                                Page 277
  6198.  
  6199.     APPENDIX U -- Using RBBS-PC to access ORACLE or dBASE Remotely
  6200.     --------------------------------------------------------------
  6201.     1.  The Need for Data Base Services
  6202.  
  6203.     A feature  that  has been  long  missing from  PC  based host  communication
  6204.     systems is the ability for SYSOPs  to install customized data bases and  let
  6205.     callers  run true interactive data base queries  against them.  Because data
  6206.     base management is a  major programming task, the most promising  way to add
  6207.     data  base  services is  to uses  RBBS-PC's  original and  innovative "DOOR"
  6208.     mechanism to exit  RBBS-PC and have the  remote user enter an  existing data
  6209.     base management program.
  6210.  
  6211.     "DOOR"ing  to a data base management program, however, is not as easy as one
  6212.     might hope.  The major problems stem from the fact that data base management
  6213.     programs are never designed to work in this environment.  This is because:
  6214.  
  6215.     1.    Most  programs write  to the hardware  for speed rather  than use bios
  6216.     calls, causing the  "screen" output  to appear on  the host terminal  rather
  6217.     than on the caller's terminal.
  6218.     2.    Data base programs do not monitor for  carrier.  If carrier drops they
  6219.     simply sit forever waiting for input rather than terminating.
  6220.     3.    Most use  "full screen" rather  than "line at  a time", which  usually
  6221.     does not work properly on a remote terminal.
  6222.     4.    Security.  Most data  base programs have no  way to limit what a  user
  6223.     can do.  For example, they do not  have a read-only mode, or the ability  to
  6224.     restrict  a user to specific files  or fields.  Many  let the user issue dos
  6225.     commands inside them, which gives to call too much power.
  6226.     5.    Difficulty  in learning to  use.  A  caller can hardly  be expected to
  6227.     know how to  use a data base.    Hence it  must be possible to  simplify and
  6228.     control the user interface inside the data base package.
  6229.  
  6230.     Progress has been made with two of  the most popular PC data bases -- ORACLE
  6231.     and dBASE!
  6232.  
  6233.     Using dBASE "DOORS" with RBBS-PC 
  6234.     -------------------------------- 
  6235.     db/LIB  is  a  relatively new piece of software by AJS Publishing  of  North
  6236.     Hollywood, CA  that makes remote dBASE access possible.  db/LIB is a set  of
  6237.     two  assembled  libraries  which can be used to   create/modify  dBASE  data
  6238.     structures,  create/update dBASE indices, and naturally manipulate the dBASE
  6239.     records.    These   libraries  also  have  many  replacements    for   dBASE
  6240.     functions/commands   not  easily  replicated   (ie.  IIF,  RECNO(),  DATE(),
  6241.     RTRIM(),  DELETED(),  etc.) outside  of the  dBASE  environment.   db/LIB is
  6242.     currently  developing a  multi-user  version  that  should be  released  for
  6243.     testing by the end of January 1989. 
  6244.      
  6245.     db/LIB    was designed  to work  with  Microsoft Quick  BASIC 4.0  and BASIC
  6246.     Compiler 6.0  (there  is  a  QB 2/3  version  available  directly  from  AJS
  6247.     Publishing after you purchase db/LIB). 
  6248.      
  6249.     dBASE Remote Access Advantages/Disadvantages 
  6250.      
  6251.     Combine  db/LIB with any well written  door skeleton (such as the very  fine
  6252.     skeleton) and  you can have a true  shareable  remote database   system. The
  6253.     following section highlights  some  advantages   and addresses the  problems
  6254.     concerning remote dBASE database access. 
  6255.      
  6256.     Advantages of using db/LIB and dBASE data bases: 
  6257.      
  6258.     1.    Purchase  of  dBASE  is not required.  db/LIB can  create  modify  and
  6259.  
  6260.     RBBS-PC CPC17-2A                                                Page 278
  6261.  
  6262.           maintain any dBASE structure.  A program with db/LIB and downloaded by
  6263.           a  third party can give these same freedoms to a third party.   Sample
  6264.           programs with db/LIB demonstrate that most of dBASE's functions can be
  6265.  
  6266.          replicated or substituted using db/LIB. 
  6267.      
  6268.     2.    If  dBASE  (or any good clone) is  owned,  then the two work very well
  6269.           in   tandem.    The  programmers   at  Ashton-Tate  didn't gain  their
  6270.           reputation  for  writing junkware.  By  owning  dBASE,  the  user  can
  6271.           download  any  database structure  and  perform  any data manipulation
  6272.           easily  in  a  familiar environment. 
  6273.      
  6274.     3.    Full  screen  (ANSI)  writes,   security,  carrier  monitoring,  error
  6275.           trapping, are  all handled by the door skeleton.  Let database modules
  6276.           run the  database, and let the door modules run the door. 
  6277.      
  6278.      
  6279.     Disadvantages of using db/LIB and dBASE data bases: 
  6280.      
  6281.     1.    Remote  dBASE database access is not the same as accessing  dBASE  III
  6282.           remotely.  Creation of these DOORS requires knowledge of Quick  BASIC,
  6283.           some  knowledge of data communications, and some knowledge  of  dBASE.
  6284.           All  end user requirements have to be anticipated, all cases  covered,
  6285.           and  created in  advance.  Once the application is created, then  user
  6286.           need no little or nothing about any of the above. 
  6287.      
  6288.     2.    Not all  users can use  ANSI commands for  full screen editing.   This
  6289.           means that  doors need  to have  a scrolling  (terminal) type  display
  6290.           capability as a substitute for the normal full screen writes.  In some
  6291.           doors this will simply be impossible, preventing all users 
  6292.          from database access.  
  6293.      
  6294.     For    those  interested in  dBASE-based  on-line  data  base searches  with
  6295.     RBBS-PC,  you  might try writing Steven Kling at 4009 Utah Ave.,  Brentwood,
  6296.     MD 20722.   Steven   is  the  author   of BBS_BASE, USER_BASE and  DoorBase.
  6297.     BBS_BASE  is   a  non-ANSI  dBASE  III  demonstration DOOR that maintains  a
  6298.     database of Bulletin Board names, phone numbers,  etc.  This database can be
  6299.     queried, added  to, edited, and  up  to the minute reports can be generated.
  6300.     The entire  database  with indices   can  be   downloaded  by the  user  for
  6301.     personal use.   This  database is  indexed   and therefore   can  be queried
  6302.     either  by  name or  phone   number.     BBS_BASE    was written  only  as a
  6303.     demonstration of using RBBS-PC to access a  data  base remotely. USERBASE is
  6304.     a dBASE registration door  for RBBS 15.1C and  above. It comes in  both ANSI
  6305.     and non-ANSI versions  and gives an  automatic access upgrade capability  to
  6306.     the SYSOP at his/her option.   
  6307.     Steven Kling and Michael Kelly are collaborating on DoorBase, which has just
  6308.     been released,  and this will give a SYSOP the capability to place any dBASE
  6309.     III database on-line, and  will allow him/her to set up  all the full screen
  6310.     display  features  to his/her  own specification.     DoorBase  has multiple
  6311.     demonstration databases available including databases of Congressmen,  dBASE
  6312.     vendor support companies, and a national BBS listing. 
  6313.  
  6314.     Steven is  also the  SYSOP of  Technopeasants' EAST  RBBS at  (301)-927-4258
  6315.     Brentwood, MD (PC Pursuitable) 24 Hours/ 2400 baud. 
  6316.      
  6317.     Michael  is  the  SYSOP  of  Technopeasants'  WEST  RBBS  at  (503)-257-7070
  6318.     Portland, OR (PC Pursuitable) 24 Hours/ 2400 Baud. 
  6319.  
  6320.  
  6321.     Using ORACLE with RBBS-PC for On-line Data Base Access
  6322.  
  6323.     RBBS-PC CPC17-2A                                                Page 279
  6324.  
  6325.     ------------------------------------------------------
  6326.     Another database package that is able to be used as a "door" is ORACLE from
  6327.     Oracle  Corporation  at One Oracle Parkway in  Belmont,  California  94002.
  6328.     Their  number  is (415) 598-8000.  ORACLE is a very promising  solution  to
  6329.     providing  remote  data  base  services.   Oracle  addresses  the  problems
  6330.     mentioned earlier as follows.
  6331.  
  6332.     1.    Screen writes.  ORACLE user bios calls.  All output appears  perfectly
  6333.           normal on remote terminals through the  CTTY interface in RBBS-PC.
  6334.  
  6335.     2.    Monitor  for carrier.  Run WATCHDOG, which will reboot your system  if
  6336.           carrier drops.
  6337.  
  6338.     3.    Full screen mode.  ORACLE uses only ANSI commands to control the users
  6339.           screens.  Callers whose remote communications package implements  ANSI
  6340.           support  therefore  see full screen writes exactly the same  as  local
  6341.           users.  FULL SCREEN WORKS!
  6342.  
  6343.     4.    Security.  ORACLE has all the security you could ever want because  it
  6344.           was designed for multi-user systems.
  6345.  
  6346.     5.    Usability.  ORACLE implements SQL, which  is increasingly becoming  an
  6347.           industry standard that all major data base systems are supporting.
  6348.  
  6349.     Of   course, there are some problems using ORACLE in a way in which  it  was
  6350.     never designed:
  6351.  
  6352.     1.    There  is  a  problem  getting the  function  keys  to  work  properly
  6353.           remotely.
  6354.  
  6355.     2.    The  ability  for a caller to use DOS commands needs  to  be  disabled
  6356.           within ORACLE.
  6357.  
  6358.     3.    Callers  who  do not know SQL need pre-structured queries and  a  menu
  6359.           interface  to  be designed for them.   ORACLE supports a  full  screen
  6360.           interface  but the user interface in ORACLE is not as programmable  as
  6361.           one would like.
  6362.  
  6363.     For  those  interested  in  ORACLE-based  on-line  data  base searches  with
  6364.     RBBS-PC, you might  try writing John Prior  at P.O. Box 2168,  Rockville, MD
  6365.     20852-2168.  Steve is the SYSOP of
  6366.  
  6367.            SQLBBS at (301)-881-6588
  6368.            Rockville, MD (PC Pursuitable)
  6369.            24 Hours/ 2400 baud.
  6370.  
  6371.     The  SQLBBS  is  a  specialized  bulletin   board  system  specializing   in
  6372.     supporting  relational  data  base managers and making  the   power  of  SQL
  6373.     available to callers.   SQLBBS uses an RBBS-PC door to get into ORACLE.  The
  6374.     SQLBBS  has implemented ORACLE to help manage  the data processing  for  the
  6375.     National Council for Children's Rights (NCCR), and have several major  data
  6376.     bases  on-line   for general interest.  People can contact John  Prior,  the
  6377.     SQLBBS SYSOP, on Compuserve or MCI, by  mail, or call SQLBBS if they wish to
  6378.     see  how  ORACLE is implemented,  get the latest progress report, or   share
  6379.     experiences  implementing  data   base services.  Here are  details  on  the
  6380.     SQLBBS system and how to reach both John and it:
  6381.  
  6382.     Modem:              2400 Baud Hayes
  6383.     BBS Number:         301/881-6588
  6384.     Hours:              24 hrs/day
  6385.  
  6386.     RBBS-PC CPC17-2A                                                Page 280
  6387.  
  6388.     Address:            Prior Computer Service Inc.
  6389.                         POB 2168
  6390.                         Rockville MD 20852-2168
  6391.     Compuserve ID:      76266,1072
  6392.     MCI MAIL ID:        JPRIOR
  6393.     SYSOPS:             John F. Prior
  6394.                         Steve J. Prior
  6395.                         Tony Zelof
  6396.     SQL Tables          Roster of the House of Representatives
  6397.     Available           Roster of the Senate [both with addresses etc.]
  6398.     Now                 The States [2 char abbreviation and full name]
  6399.  
  6400.     Call  SQLBBS as you  would any other RBBS-PC system.  Go through  the  Door.
  6401.     SQLBBS  executes a "SELECT * FROM TAB;" for  you which shows you the  tables
  6402.     and  views you can  access.  At the UFI> prompt execute any  SELECT  command
  6403.     you want against any table or view.  
  6404.  
  6405.     "SELECT  *  FROM  STATES;"                                    returns    all  rows [records]
  6406.                                                   of the STATES table.
  6407.  
  6408.     "SELECT  * FROM STATES WHERE ST = 'MA';"      returns  all  rows   about the
  6409.                                                   state  whose     two-character
  6410.                                                   code is "MA".
  6411.  
  6412.     "SELECT COUNT(*) FROM STATES;"                gives  you a count of the rows
  6413.                                                   in the STATES table.
  6414.  
  6415.     If  you substitute  another table or view instead of STATES such as  SENATE,
  6416.     you can access other tables/views.
  6417.  
  6418.     "DESC HOUSE"                   would  return  the column  names of the HOUSE
  6419.                                    table.
  6420.  
  6421.     "HELP"                         gets you help.
  6422.  
  6423.     "HELP SELECT"                  gets  you  help on  the SELECT command. 
  6424.  
  6425.     "HELP  SET"                     gets    you  help  on the   SET command which
  6426.                                    can control  many options for display
  6427.  
  6428.     "SHOW ALL"                     shows  you everything  you  can SET.
  6429.  
  6430.     "EXIT"                         terminates UFI and returns  you to RBBS-PC.
  6431.  
  6432.     RBBS-PC CPC17-2A                                                Page 281
  6433.  
  6434.     APPENDIX V -- Using RBBS-PC with SEAdog to Access FIDO-NET
  6435.     ----------------------------------------------------------
  6436.     SEAdog  is  a full-featured  electronic mail  system  based on  the personal
  6437.     computer and using standard telephone lines.   It is a  sophisticated store-
  6438.     and-forward mail system  which can  be configured in  a virtually  unlimited
  6439.     number of  network topologies  (more on  this later).   Unlike some  network
  6440.     systems, the end user need never concern himself with network routing  -- it
  6441.     all happens automatically.   The user  just submits and retrieves  messages,
  6442.     the system takes care of the details.  The hardware needed to run RBBS-PC is
  6443.     sufficient to run SEADOG.
  6444.  
  6445.     SEAdog  uses  the  FidoNet  Electronic  Mail  Protocol, as  defined  in  the
  6446.     document, A Basic FidoNet Technical Standard, published by the International
  6447.     FidoNet  Association  (IFNA).   The  FidoNet  Protocol  is  a public  domain
  6448.     electronic mail standard originally  developed by Tom Jennings for  the Fido
  6449.     bulletin board  system.  For more  information about  the FidoNet  Protocol,
  6450.     please write to:
  6451.  
  6452.         The International FidoNet Association
  6453.         P.O. Box 41143
  6454.         St. Louis, Missouri  63141
  6455.         United States of America
  6456.  
  6457.     There are several advantages to using the FidoNet Protocol, not the least of
  6458.     which is that  a great many utilities  and programs are available  from many
  6459.     different vendors for  doing various  things with electronic  mail.   Please
  6460.     contact IFNA at the above address for more information.
  6461.  
  6462.     The  heart of SEAdog is  the network mail  server, MAILER.EXE.   This is the
  6463.     program that places and  receives phone calls, handles message  routing, and
  6464.     so forth.  It is left running when you would normally turn your machine off.
  6465.  
  6466.     You can  set RBBS-PC  to drop  to DOS  at a  time when  telephone costs  are
  6467.     cheapest  (normally  4AM Eastern  Standard time  and  1AM Pacific  time) and
  6468.     invoke the mailer  so that  it begins  placing phone calls  to other  SEAdog
  6469.     systems to pass them your outgoing mail and receive your incoming mail.  
  6470.  
  6471.     SEAdog costs $100.00  and can be  ordered from the  address or phone  number
  6472.     below.
  6473.  
  6474.             Thom Henderson
  6475.     SYSTEM ENCHANCEMENT ASSOCIATES
  6476.            21 Wayne Street
  6477.        Wayne, New Jersey 07470
  6478.            V:201-473-5153
  6479.  
  6480.     This doc  file is  not intended  to replace  the SEAdog  manual, but  rather
  6481.     provide information  that  an  RBBS-PC  SYSOPsysop would  find  useful  when
  6482.     configuring RBBS-PC to run with SEAdog.
  6483.  
  6484.     The current status of the RBBS-PC - SEAdog project is at the  level in which
  6485.     RBBS-PC  has the ability  to be front-ended  by SEAdog in  where SEAdog will
  6486.     turn over to it a live, active modem with a caller waiting. RBBS-PC has been
  6487.     modified to accept  two additional command  line parameters which can  alter
  6488.     the  defaults in RBBS-PC.DEF. Currently, that is the extent to which RBBS-PC
  6489.     and SEAdog can  be used together.  The Fido message base  format is not  yet
  6490.     compatible with RBBS-PC.
  6491.  
  6492.     It  is assumed that you are  reading this because you  are familiar with the
  6493.     RBBS-PC  and have  at least a  minimum knowledge  of FidoNet and  FidoMail. 
  6494.  
  6495.     RBBS-PC CPC17-2A                                                Page 282
  6496.  
  6497.     Another assumption is that you have RBBS-PC up and running on your computer.
  6498.      The easiest  way to get all two  programs working together is  to have each
  6499.     running  from  it's  own subdirectory  on  your  hard  disk.   That'll  make
  6500.     maintenance of RBBS-PC  and SEAdog  specific files much  easier. Follow  the
  6501.     instructions in the  SEAdog manual to install  it, if that hasn't  been done
  6502.     yet. Once  installed all  SEAdog  files will  be  in a  subdirectory  called
  6503.     \MAIL.   Make any required modifications to  your CONFIG.SYS as suggested in
  6504.     the SEAdog manual.
  6505.  
  6506.     If your  using DOS  3.xx, and don't  use the  DOS SUBST command,  you should
  6507.     consider  doing so.   SUBST  is a  DOS external  command that allows  you to
  6508.     SUBSTitute  a  drive letter  for a  complete  subdirectory name.  Using this
  6509.     command will make reprogramming RBBS-PC's configuration file easier.
  6510.  
  6511.     This appendix assumes that all the SEAdog Files are in a subdirectory called
  6512.     C:\MAIL   and those  for RBBS-PC  are in  a directory  called   C:\RBBS.   A
  6513.     further assumption that is made is that a new drive  "H:" will be SUBSTitued
  6514.     for the  C:\RBBS subdirectory.
  6515.  
  6516.     Since SEAdog will  be in  controls most  of the time,  the entire  operation
  6517.     should use SEAdog's  C:\MAIL  directory as the default.
  6518.  
  6519.     Now load and run CONFIG.EXE and reprogram it's configuration to reflect that
  6520.     all RBBS's  help,  menu and  system files  are located  on  the "H:"  drive.
  6521.     Remember  the SUBSTitute command?     You can use  it to replace  those long
  6522.     subdirectory names for download and upload files.  SPECIAL ATTENTION must be
  6523.     paid  to CONFIG.EXE's parameter  163. This parameter  MUST be set  to SYSTEM
  6524.     recycle. Not doing so will cause RBBS-PC to reload itself after a caller has
  6525.     hung up or dropped carrier and not pass control back to SEAdog.
  6526.  
  6527.     The  SEAdog manual explains  various commands  that must  be placed  in it's
  6528.     configuration file called   CONFIG.DOG.   Among those that are  considered a
  6529.     minimum, you should include at least the following....   
  6530.  
  6531.     banner   Please stby,  15 secs to load  RBBS-PC
  6532.     bbs      H:RBBS    *T *B
  6533.     event    B  all   4:30  5:00                    ;Local collections
  6534.     event    A  all   5:00  6:00                    ;National FidoMail Window
  6535.     event    C  all   6:00  7:00                    ;Local distributions
  6536.     event    S  all   7:00  4:00 Crash Dynamic BBS  ;CRASH mail if not in RBBS
  6537.     event   X10 all   7:00  7:05                    ;Reboot Computer
  6538.  
  6539.     The  banner  statement  should be used so that human callers  know why there
  6540.     is a  delay from  the time  they  connect until  the time  they see  RBBS-PC
  6541.     display it's welcome message.  The  bbs command tells SEAdog what batch file
  6542.     to  run when  passing control  to RBBS.   *T  and *B  must  be in  the order
  6543.     presented above in for  RBBS-PC to pickup and use them  correctly. They pass
  6544.     the time remaining to the next scheduled  SEAdog event and the baud rate the
  6545.     caller came on with.  Event statements tell SEAdog how to schedule it's time
  6546.     during  the day.  The above example  conforms to the  FidoNet national mails
  6547.     hours  as of 26  July 1987 and  allows crash mail  and bbs  operation at all
  6548.     others.
  6549.      
  6550.     Since the SEAdog   *P  parameter in  the  bbs  command  isn't used, you must
  6551.     insure that the comm ports used for RBBS-PC and SEAdog are the same.
  6552.  
  6553.     One of the more confusing decisions will be how to setup the modem switches.
  6554.      Without  going  into  it too  deeply,  keep  in mind  that  SEAdog  will be
  6555.     controlling the modem and passing an active modem on to RBBS-PC.
  6556.  
  6557.     RBBS-PC CPC17-2A                                                Page 283
  6558.  
  6559.     Additionally, you could have  your SEAdog upload and download  areas overlap
  6560.     those of RBBS-PC.
  6561.  
  6562.     When SEAdog determines that a non SEAdog or  Fido system has called, it runs
  6563.     a second copy  of DOS,  then optionally  loads and runs  RBBS-PC via  direct
  6564.     command or  from a  batch file,  passing the  speed that  the comm port  was
  6565.     opened at, and the time remaining to the next scheduled SEAdog  mailer event
  6566.     as in the following example:
  6567.  
  6568.     SEAdog calls RBBS-PC via a batch file called RBBS.BAT
  6569.  
  6570.        C>RBBS-PC 1 H:RBBS-PC.DEF /%1 /%2
  6571.          |       | |              |   |> Baud Rate
  6572.          |       | |              |
  6573.          |       | |              |
  6574.          |       | |               |> Limits the amount of time the user has |  
  6575.        | | this session if and only if the time is |       | |less then the time
  6576.     per session specified |||in CONFIG.EXE.
  6577.          |       | |> RBBS-PC default file filespec  (Optional)
  6578.          |          |>  Node number  that the  specified .DEF  file applies  to.
  6579.     |(Optional)
  6580.          |> The name of the RBBS-PC program.
  6581.  
  6582.     With  a properly  configured RBBS.BAT  batch file,  you can  retain all  the
  6583.     functions of RBBS  to include DOORS and  dropping to DOS via  SysOp function
  6584.     #7. See the sample batch files at the end of this file.
  6585.  
  6586.     Experience  has shown that the best way to  run RBBS-PC and SEAdog is with a
  6587.     batch  file, where  SEAdog having  determined that  a non  mailer  system is
  6588.     waiting to use  the bbs will load and  run a batch file  that controls RBBS-
  6589.     PC's  operation as opposed  to SEAdog calling  RBBS-PC directly.   Two batch
  6590.     files are used, one to control SEAdog and one to control RBBS.
  6591.  
  6592.     A minimum  batch file is suggested in the SEAdog manual. In addition to what
  6593.     ever you place in it, add the following statements to it.
  6594.  
  6595.       If Exist H:RCTTY.BAT Del H:RCTTY.BAT
  6596.  
  6597.     This line should  be the first.   This statement simply helps  ensure proper
  6598.     operation of RBBS-PC if you use SYSOP function #7  or DOORS.
  6599.      If Errorlevel 10 Goto REBOOT:
  6600.  
  6601.     This line goes after the line that contains the call to the MAILER program.
  6602.  
  6603.     REBOOT:
  6604.      IPL
  6605.  
  6606.     This  line  reboots the  computer every  morning  according to  event listed
  6607.     above. Due do unexplained loss of memory when running SEAdog and RBBS-PC, is
  6608.     safe to program in  a scheduled rebooting of the computer to regain any loss
  6609.     of memory.  This line  should be  near the  last and  programmed around  for
  6610.     normal operations
  6611.  
  6612.  
  6613.  
  6614.     **  Ex RBBS batch file  **
  6615.  
  6616.       Echo Off
  6617.     :LOOP
  6618.       C:
  6619.  
  6620.     RBBS-PC CPC17-2A                                                Page 284
  6621.  
  6622.       Cd \MAIL
  6623.       If Not Exist H:RCTTY.BAT Goto LOCAL
  6624.       H:WATCHDG1 OFF
  6625.       Del H:RCTTY.BAT
  6626.       H:TESTRBBS 1 H:RBBS-PC.DEF
  6627.       Goto REMOTE
  6628.  
  6629.     :LOCAL
  6630.       H:TESTRBBS 1 H:RBBS-PC.DEF /%1 /%2
  6631.  
  6632.     :REMOTE
  6633.       If Not Exist H:RCTTY.BAT GOTO EXIT
  6634.       H:WATCHDG1 ON
  6635.       H:RCTTY.BAT
  6636.  
  6637.     :EXIT
  6638.  
  6639.     As mentioned  above, this  doc file  isn't intended  to make you  completely
  6640.     knowledgeable on how to interface RBBS-PC  and SEAdog, only get you started.
  6641.     How you set up  your RBBS-PC and SEAdog batch files is  limited only by your
  6642.     ability and imagination.   After gaining  more experience, you'll find  that
  6643.     you can automate a lot of the  RBBS-PC and SEAdog maintenance.
  6644.  
  6645.     The above reflects the creative things that Kim Wells, Fido Address 109/652,
  6646.     has  done with interfacing  RBBS-PC with the  Fido net-mail system.   If you
  6647.     need further help,  contact Kim Wells's RBBS-PC  via his data line  at (301)
  6648.     350-1299.
  6649.  
  6650.     RBBS-PC CPC17-2A                                                Page 285
  6651.  
  6652.     APPENDIX W -- DOS Limitation on Running Programs Remotely
  6653.     ---------------------------------------------------------
  6654.     When accessing your PC via a communications  port, the carrier detect signal
  6655.     tells the PC that you are on-line.   DOS's major limitation is that there is
  6656.     no  way  to tell  DOS  to monitor  carrier  detect automatically    when the
  6657.     standard input and output is  transferred to a communication port  (i.e. via
  6658.     the CTTY command).   RBBS-PC makes sure that the carrier is not dropped when
  6659.     a user exits to DOS either via the  "DOORS" option or using the remote SYSOP
  6660.     function  7.  However, it is the  SYSOP's   responsibility  to  insure  that
  6661.     whatever programs  are invoked  after leaving  RBBS-PC   perform   all   the
  6662.     necessary    functions   to maintain  the  communications session  and, when
  6663.     exiting to return to RBBS-PC, that the carrier  is  "NOT"  dropped.
  6664.  
  6665.     Most application  programs (i.e.  databases, etc.)  are not  designed to  be
  6666.     controlled by users accessing them from a communications port.  This problem
  6667.     is solved when a function is invoked that:
  6668.  
  6669.     1.  Checks  to   see if  the standard input  and output console   have  been
  6670.     assigned to an auxiliary console such as a communication port.
  6671.     2. If  condition 1 is true,  checks to see  if the carrier detect  signal is
  6672.     lost   by  intercepting  each  interrupt from  the  communication  port  the
  6673.     auxiliary console has been assigned to.
  6674.     3. If BOTH conditions  1 and 2  are true, this function  would cause DOS  to
  6675.     return to the  standard screen and keyboard for its  operations AND continue
  6676.     processing  whatever batch file that had been executing.
  6677.  
  6678.     Such a function  (or device driver) would provide a "fail safe" feature that
  6679.     would allow users  to exit  RBBS-PC   to  use  whatever   other software the
  6680.     SYSOP chose to  make   available   (i.e.  relational  databases for  complex
  6681.     inquiries -- bibliographic,  sports,  games,  etc.).  For those anticipating
  6682.     using RBBS-PC's "doors"  or exiting to DOS when you are  a remote SYSOP, you
  6683.     are strongly  encouraged to  consider using  the "watchdog" utility  program
  6684.     available  on  many  bulletin  board  systems   under  such  file  names  as
  6685.     WATCHDOG.COM,  WATCHDOG.ASM, WATCHDOG.DOC,  WATCHDOG.EXE  that monitors  the
  6686.     communication port for you and reboots your system if carrier drops.  If you
  6687.     don't use a program like WATCHDOG and accidentally hang up while in a "door"
  6688.     or in DOS, you system will remain "hung" until you can manually reboot it.
  6689.  
  6690.     Programs  that utilize the PC's built in video memory (such as the IBM BASIC
  6691.     interpreter or WordStar when  it writes to the 25th line)  need to have such
  6692.     I/O redirected in a  special way to a remote users  terminal.  Additionally,
  6693.     if the  I/O is redirected  to the communications  port, the terminal  on the
  6694.     other end  must have  a "cursor" that  can be  sent the  appropriate command
  6695.     sequence  to move  it  around on  the  remote users  terminal  as necessary.
  6696.     Without this capability,  programs  made  available  through "doors" must be
  6697.     line-at-a-time  programs.    This  of  course  excludes   programs  such  as
  6698.     WordStar, Lotus/123 etc.
  6699.  
  6700.     If you  aren't technically  inclined and  want to  use RBBS-PC  "doors",   I
  6701.     suggest you consider only  using programs that have been  explicitly written
  6702.     to overcome the above  two DOS limitations.   Applications that don't  write
  6703.     directly to  the video memory of  the PC can be  used safely as  a "door" as
  6704.     long as a "watchdog" type program is also used.
  6705.  
  6706.     RBBS-PC CPC17-2A                                                Page 286
  6707.  
  6708.     APPENDIX X -- Using RBBS-PC with DoubleDOS
  6709.     ------------------------------------------
  6710.     Two nodes of RBBS-PC can be  operated on one 640K PC/XT/AT under  DoubleDOS.
  6711.     First, make sure  DoubleDOS and RBBS-PC, individually, operate  correctly on
  6712.     your  computer.  Then,  the DDCONFIG.SYS file  can be changed  to facilitate
  6713.     operation of RBBS.  SoftLogic Solutions,  the DoubleDOS supplier, operates a
  6714.     customer  service  BBS  at 603-644-5556  and  can  often  help with  special
  6715.     problems.   (An example: DoubleDos version  4.0 must be modified  with their
  6716.     special patch in order to  operate on machines using EEMS memory  controlled
  6717.     by AST's REMM.SYS driver.)
  6718.  
  6719.     DoubleDOS even  has a  special interrupt that  RBBS-PC calls to  "give back"
  6720.     unused time to the  foreground job when it really doesn't need  the time, so
  6721.     that during periods of low communications  activity, the foreground job runs
  6722.     at  essentially 100% of the machine's  speed.  GIVEBACK is incorporated into
  6723.     releases CPC16-1A (and greater) of RBBS-PC.
  6724.  
  6725.     The  DOS  (3.1  or greater)  utility  SHARE  should be  run  before starting
  6726.     DoubleDOS to provide for file locking.                                      
  6727.  
  6728.  
  6729.     RBBS-PC, due  to  the  code generated  by  the BASIC  compiler,  requires  a
  6730.     considerable amount of memory.   If insufficient memory is  available, RBBS-
  6731.     PC may  fail to load, may report a string corrupt error, may hang, or, worst
  6732.     of all,  may appear to  start and  operate normally only  to fail later.   A
  6733.     (partial)  test of whether enough memory is available is to note the DS free
  6734.     space in the  SYSOP initial menu when operating  under DoubleDOS compared to
  6735.     naked  DOS; any  reduction in this  reported free space  may indicate memory
  6736.     shortage.  The best  approach, unfortunately, is to  start with more  memory
  6737.     than necessary,  get your system  going reliably, and  then do a  crude cut-
  6738.     and-try process of  reducing memory until  problems first appear; then  back
  6739.     off up to an again-reliable memory setting.
  6740.                                                                                 
  6741.     Terminate-and-stay-resident  programs (e.g.  ramdisks, print  spoolers, Side
  6742.     Kick) will reduce the memory available to RBBS-PC.  Buffers specified in the
  6743.     CONFIG.SYS file also  reduce available  memory.   Some versions  of DOS  are
  6744.     smaller than  others; every little bit of memory  helps.  Large programs may
  6745.     not run in the second DoubleDos memory section after starting RBBS-PC in the
  6746.     first.
  6747.  
  6748.     Because of these memory considerations, SHELLing  to DOORS and external file
  6749.     transfer protocols will not be possible.   If these features of RBBS-PC  are
  6750.     used, they will need to be invoked by EXITing to them.
  6751.  
  6752.     The BASIC compiler  version used determines  the amount of memory  required.
  6753.     Two  nodes  of  RBBS(version  16.1A),  have  been  demonstrated  to  operate
  6754.     successfully under DoubleDOS when  compiled with Quick Basic 1.02  and RBBS-
  6755.     PC's memory requirements reduced (see Appendix Y).  When compiled with Quick
  6756.     Basic 2.x,  3.x or  4.x, two nodes  will not fit  under DoubleDOS.   To save
  6757.     memory, expert SYSOPS  who are adept  at compiling/linking their own  custom
  6758.     versions of RBBS-PC, can selectively (and at their own risk) delete from the
  6759.     source  code sections  that they  do not  require.   Such personal  versions
  6760.     should  not be  circulated to  others.   If this  is done,  the more  recent
  6761.     compilers may produce code compact enough for 2 nodes.
  6762.  
  6763.     DoubleDOS has several parameters that can improve RBBS-PC operation. Sample:
  6764.      
  6765.          menu = short                    ;the long menu requires more memory
  6766.          display = text                  ;to not reserve graphics buffer
  6767.          print driver = direct           ;use direct drive, no buffer reserved
  6768.  
  6769.     RBBS-PC CPC17-2A                                                Page 287
  6770.  
  6771.          bottom size = half              ;split memory for two RBBS nodes
  6772.          priority = equal                ;both nodes run at same speed
  6773.  
  6774.     The next  items may be desirable to provide  protection, in case any program
  6775.     in the other memory section should try  to use a COM port assigned to  RBBS-
  6776.     PC.
  6777.            com1 = top                      ;obviously these two port assignments
  6778.            com2 = bottom                   ;could be reversed
  6779.  
  6780.     Possible circumstances that might warrant this protection:
  6781.  
  6782.     1.SYSOP  makes a COM  port assignment error  in the .DEF file  for the other
  6783.     node.
  6784.     2.one node is  temporarily shut down  by the SYSOP  to run another  program.
  6785.     Some  programs  (e.g. some  versions  of  BASIC) initialize  both  COM ports
  6786.     (clobbering RBBS-PC) when started.
  6787.  
  6788.     Warning:  this  protection is known to  be unusable on some  machines (e.g.,
  6789.     works fine on IBM-PC 8088, does not  work on AST Premium 286 or TATUNG  4000
  6790.     AT).
  6791.  
  6792.     It is convenient (and  safer, to prevent keystroke errors)  to automate your
  6793.     startup.   In your  AUTOEXEC.BAT file you  should initiate DOUBLEDOS  as the
  6794.     last item.   It will  then start, using  the DDCONFIG.SYS file  for detailed
  6795.     RBBS-PC   instructions.    Sample  DDCONFIG.SYS  contents  (this  will  vary
  6796.     according to your exact setup):
  6797.  
  6798.          top program = prompt TOP $p$g
  6799.          top program = go
  6800.          bottom program = prompt BOT $p$g
  6801.          bottom program = go
  6802.  
  6803.     Note that the change in prompt allows a single batch file, GO.BAT, which has
  6804.     the single statement of GO%PROMPT%, to  execute the correct node of  RBBS-PC
  6805.     in  either node.  Nothing is more embarrassing  than to start a node that is
  6806.     already operating.  All that need be typed is GO<RETURN> and either GOTOP or
  6807.     GOBOT will be  executed.  (Actually the  GO batch file execution  looks like
  6808.     "TOP C:\DDOS>GOTOP $p$g".  The $p$g is  ignored.)  GOTOP.BAT might then look
  6809.     like this:
  6810.         C:
  6811.         CD\RBBS
  6812.         RBBS1    
  6813.  
  6814.     RBBS1.BAT would  then  be  the first  node  RBBS.BAT as  discussed  in  this
  6815.     document.  Similarly, GOBOT would start RBBS2.BAT for the second node.
  6816.  
  6817.     Stan Staten, RBBS-PC number (301) 670-9621
  6818.     Kurt Riegel, RBBS-PC number (202) 524-1837)
  6819.  
  6820.     RBBS-PC CPC17-2A                                                Page 288
  6821.  
  6822.     APPENDIX Y -- Recompiling RBBS-PC to Reduce Memory Required
  6823.     -----------------------------------------------------------
  6824.     RBBS-PC has always  sought to live up to CPCUG's Bill of Rights for Software
  6825.     Users which  maintains, among other  things, that each  software user  has a
  6826.     right to "integrate  software products  into his or  her system  environment
  6827.     without undue  constraints."   For this reason,  RBBS-PC has chosen to be as
  6828.     configurable as possible through the program  CONFIG with over 200 different
  6829.     parameters.   Additionally, RBBS-PC  has  always been  distributed with  the
  6830.     complete BASIC source code with each new release.
  6831.  
  6832.     It is this kind of leadership (by example) and recognition of software users
  6833.     rights that makes RBBS-PC unique in the personal computer industry.
  6834.  
  6835.     RBBS-PC is continually being  enhanced with new features.  As  new functions
  6836.     and   capabilities   are   added,   RBBS-PC's   memory   requirements   grow
  6837.     correspondingly.  In  order to continue RBBS-PC's growth  and still meet the
  6838.     memory constraints imposed  on SYSOPs with only  640K of memory who  wish to
  6839.     run  two copies  of RBBS-PC,   RBBS-PC source  code can be  "mite-sized" and
  6840.     recompiled to fit within whatever memory constraints a SYSOP must deal with.
  6841.  
  6842.     SYSOPs can  apply .MRG files against the  unmodified RBBS-PC source code and
  6843.     elect to eliminate RBBS-PC  features not being used and  eliminate redundant
  6844.     code  (typically the  BASIC source  code that  replicates  assembly language
  6845.     routines). RBBS-PC Version CPC17-2A has a companion "mite-size" set of files
  6846.     contained in the file LIT-172A.ARC dated 04/30/89.
  6847.  
  6848.     In order to recompile  and "mite-size" RBBS-PC, within the  same environment
  6849.     in which  the SYSOP has successfully recompiled the current release of RBBS-
  6850.     PC Version CPC17-2A the SYSOP must also have the following files:
  6851.  
  6852.     BLED.EXE        --The  Batch  Line  EDitor  by  Ken Goosens  (version  2.2  or
  6853.                     greater).
  6854.     MAKELIT.BAT    --The  BATch  file  that  invokes  BLED.EXE  and  applies  the
  6855.                     necessary files  to the  unmodified source  code. This  file
  6856.                     should be  modified by  putting  in the  drive/path for  the
  6857.                     original code (the  first parm to  BLED).   The lines to  be
  6858.                     modified all begin  with "*$",  which is the  default for  a
  6859.                     BLED metacommand.    The lines beginning with  "* " are BLED
  6860.                     comments, which are ignored in a merge.
  6861.     SETLIT.INC      --The  file  through  which  the  SYSOP  selects  the  RBBS-PC
  6862.                     features that are not needed.  The directions for doing this
  6863.                     are  contained  within  this file.  A  feature  is typically
  6864.                     removed by  setting a  BLED metacommand  variable to  "OFF",
  6865.                     e.g. BAUD450 to "OFF" to save  code by excluding the RBBS-PC
  6866.                     feature  that allows  300 baud  uses to increase  their baud
  6867.                     rate  to 450  while  on-line.   To  exclude RBBS-PC  LIBRARY
  6868.                     subsystem set LIBRARY to "OFF". 
  6869.     RBBSLIT.MRG  -- The fundamental BLED merge for CPC17-2A's RBBS-PC.BAS
  6870.     SUBxLIT.MRG  -- The fundamental BLED merge for CPC17-2A's various RBBSSUB's.
  6871.                     Each  reads in  (includes) the  file SETLIT.INC  to  set the
  6872.                     metavariables used by  BLED.  BLED  then uses the values  to
  6873.                     determines what merges to process.
  6874.     *.LIT        -- .MRG files that eliminate RBBS-PC features.
  6875.  
  6876.     The procedure for "mite-size"ing RBBS-PC Version CPC17-2A is as follows:
  6877.  
  6878.     1.  Select  the RBBS-PC features not required for your  needs and modify the
  6879.     file SETLIT.INC.
  6880.  
  6881.     2.  Change MAKELIT.BAT to reflect your PC's subdirectories.
  6882.  
  6883.     RBBS-PC CPC17-2A                                                Page 289
  6884.  
  6885.  
  6886.     3.  Make sure RBBSSUB1.BAS is in the subdirectory you will run in.
  6887.  
  6888.     4.  Execute the MAKELIT.BAT file.  Do not continue if errors are found.
  6889.  
  6890.     5.  Recompile the "mite-siz"ed  RBBS-PC source code.  Remember,  this "mite-
  6891.     sized" source code and the RBBS-PC.EXE file created from it  my only be used
  6892.     by you and not distributed to others. 
  6893.  
  6894.          Some comments on the various Microsoft QuickBASIC compilers:
  6895.               QuickBASIC Version 1.02 produces the smallest code.
  6896.               QuickBASIC Version 2.01 produces the next smallest code.
  6897.               QuickBASIC Version 3.00 produces the largest code.
  6898.               QuickBASIC Version 4.5 produces code smaller than
  6899.                     3.00) but is not as reliable
  6900.  
  6901.          Never LINK with the /E option.
  6902.  
  6903.     6.  Re-run CONFIG and  disable the RBBS-PC features that were deleted in the
  6904.     "mite-sized" version that  was created in steps  1 through 5 (i.e.  take out
  6905.     the "A" command if questionnaires were disabled). 
  6906.  
  6907.     Please  realize that  there is  no way  that the "mite-sized"  variations of
  6908.     RBBS-PC can  be supported.   The many  different PC configurations  plus the
  6909.     multitude of combinations of RBBS-PC features are what make this impossible.
  6910.     However, we will do our best.  
  6911.  
  6912.     Please report any problems with BLED or the *.LIT merges to  Ken Goosens via
  6913.     his RBBS-PC data number -- (703) 978-6360.
  6914.  
  6915.     RBBS-PC CPC17-2A                                                Page 290
  6916.  
  6917.     APPENDIX Z -- The MICROCOM AX\9624c RBBS-PC Switch Settings
  6918.     -----------------------------------------------------------
  6919.     First set the Microcom AX\9624c switch settings as follows:
  6920.  
  6921.          CONFIGURATION SWITCH SETTINGS FOR THE MICROCOM AX\9624c MODEM
  6922.          =============================================================
  6923.  
  6924.                      1   2   3   4   5   6   7   8   9   10
  6925.                      --------------------------------------
  6926.     Front Switch -   U   D   D   D   D   U   U   D   U   U
  6927.  
  6928.     Rear Switch  -   U   U   D   U   D   D   D   D   -   -
  6929.  
  6930.     Change  CONFIG  parameter 228 to open the modem initially  for  9600  baud.
  6931.     Then  go  to  CONFIG parameter 225 and change some  of  the  default  Hayes
  6932.     commands.
  6933.  
  6934.     Within  parameter  225,  you  will  want  to  change  the  second  command,
  6935.     "Initialize  the modem."  If you want RBBS-PC to answer on one ring set  it
  6936.     to:
  6937.  
  6938.                  ATM0Q1S2=255S10=45E0S0=254&D2
  6939.  
  6940.     To answer on zero rings, set it to:
  6941.  
  6942.                  ATM0Q1S2=255S10=15E0S0=0Q0X1&D3
  6943.  
  6944.     Please  note  that these change the default Hayes  commands  supplied  with
  6945.     RBBS-PC  for S10.  Also note that an &D command was added to the  end.   If
  6946.     you  are  set  up to answer on ring zero and  your  modem  sometimes  stops
  6947.     answering  for no reason that you can isolate, alter the S10 value to  "45"
  6948.     and  &D2.  You may also want to activate CONFIG parameter 236 to "wake  up"
  6949.     the modem.
  6950.  
  6951.     These  configurations will allow RBBS to establish a MNP reliable  or  non-
  6952.     reliable connection from 300 to 9600 BAUD using the AX\9624c's MNP class  6
  6953.     Universal Link Negotiation capability.
  6954.  
  6955.     RBBS-PC CPC17-2A                                                Page 291
  6956.  
  6957.     APPENDIX AA -- The Leading Edge Series L 2400B Modem
  6958.     ----------------------------------------------------
  6959.     Gregg Snyder, SYSOP of "The Elusive Diamond" - DGS (Alpha) System, and  Jim
  6960.     Thompson of "The Break" -DGS (Delta) System (Data:  703-680-9269) are to be
  6961.     created  with documenting how to get the Leading Edge Series L 2400B  modem
  6962.     to  run with RBBS-PC ("all modems are Hayes-compatable, but some  are  less
  6963.     Hayes-compatable than others").
  6964.  
  6965.     First  you  must set CONFIG parameter 228 to open the modem at  1200  baud.
  6966.     Next go to CONFIG parameter 225 and set the modem commands as follows:
  6967.  
  6968.     1. Reset the modem                : ATB1H0L1M0C1
  6969.  
  6970.     2. Initialize the modem           : ATH0B1L1M0Q1E0S0=254
  6971.        Note: End item 2 with:
  6972.          S0=1Q0X1 if answer on 0 rings
  6973.          S0=254 if answer on >0 rings (no ring-back)
  6974.          S0=255 if answer on >0 rings (with ring-back)
  6975.  
  6976.     3. Count the number of rings      : ATS1?
  6977.  
  6978.     4. Answer the phone               : ATQ0X1V1A
  6979.  
  6980.     5. Take the phone off the hook    : ATH1L1M0
  6981.  
  6982.     6. Clear the modem's firmware     : AT&F
  6983.  
  6984.     7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  6985.        Note: End item 7 with:
  6986.          Q1 if item 2 ends with S0=255
  6987.  
  6988.     8. Write to modem's firmware      : &W
  6989.  
  6990.     These  settings  have  been tested for more than a  year  by  Jim  Thompson
  6991.     beginning with RBBS-PC CPC15-1C.
  6992.  
  6993.     ================= END OF RBBS-PC CPC17-2A DOCUMENTATION ==================